TheAdvancedUser: Dynamisch Eventhandler einem HTML-Objekt hinzufügen

Hallo alle zusammen,

ich habe beim Anlegen eines Eventhandlers Probleme. Die Idee ist folgende: Es sollte im Prinzip möglich sein einem HTML-Tag, das dynamisch als Objekt generiert wird, einen Eventhandler zuzuweisen, um z.B. den Text von einer Option aus einem Auswahlfeld mit einem Textfeld zu synchronisieren. Für den IE gäbe es von MS eine Möglichkeit, aber ich würde gerne den Code für einige Browser anwenden können...

Viele Grüße
TheAdvancedUser

PS: Meine Experimente habe ich nach 1 Stunde aufgegeben :(

  1. Hallo,

    ich habe beim Anlegen eines Eventhandlers Probleme. Die Idee ist folgende: Es sollte im Prinzip möglich sein einem HTML-Tag, das dynamisch als Objekt generiert wird, einen Eventhandler zuzuweisen, um z.B. den Text von einer Option aus einem Auswahlfeld mit einem Textfeld zu synchronisieren. Für den IE gäbe es von MS eine Möglichkeit, aber ich würde gerne den Code für einige Browser anwenden können...

    Vielleicht hilft dir ja http://www.quirksmode.org/js/events_advanced.html
    weiter? Ansonsten mußt du mal genauer beschreiben, was du erreichen willst.

    Gruß, Jan

  2. Hallo,

    Es sollte im Prinzip möglich sein einem HTML-Tag, das dynamisch als Objekt generiert wird, einen Eventhandler zuzuweisen

    elementobjekt.onevent = handlerfunktion;

    Für den IE gäbe es von MS eine Möglichkeit, aber ich würde gerne den Code für einige Browser anwenden können...

    Was spricht gegen die einfache Methode? Hast du mehrere unabhängige Handlerfunktionen?

    Mathias

  3. Sollte für alle Browser funktionieren

    function addEvent(obj, evType, fn) {
      if (obj.addEventListener)
      {
        obj.addEventListener(evType, fn, false);
        return true;
      }
      else if (obj.attachEvent)
      {
         var r = obj.attachEvent("on"+evType, fn);
         return r;
      }
      else
      {
        return false;
      }
    }

    function removeEvent(obj, evType, fn) {
      if (obj.addEventListener)
      {
        obj.removeEventListener(evType, fn, false);
        return true;
      }
      else if (obj.attachEvent)
      {
         var r = obj.detachEvent("on"+evType, fn);
         return r;
      }
      else
      {
        return false;
      }
    }

    function getEventTarget(e) {
    return (e.target) ? e.target : e.srcElement

    ------------------------------

    Bsp für HTML-Knopf, der bei Mouseover Aufleuchtet und bei Mouseout die Originalfarbe annimmt.

    function ButtonEnter(e)
    {
      var node = getEventTarget(e);
      node.style.backgroundColor = styleOfBackground(gstylehi);
    }

    function ButtonLeave(e)
    {
      var node = getEventTarget(e);
      node.style.backgroundColor = styleOfBackground(gstylebu);
    }

    function makeButton(node)
    {
        addEvent(node,"mouseover",ButtonEnter);
        addEvent(node,"mouseout",ButtonLeave);
    }

    1. Hallo,

      function getEventTarget(e) {

      return (e.target) ? e.target : e.srcElement

      function ButtonEnter(e)
      {
        var node = getEventTarget(e);

      e ist undefined im MSIE, nicht?
      Der Link wurde hier ja schon gepostet: http://www.quirksmode.org/js/events_advanced.html -> http://www.quirksmode.org/js/events_access.html

      Wie auch immer, ich würde erst einmal die Anforderungen klären.

      Mathias