nicolas: doppelter event handeln

hallo,

versteh ich nicht dieser thread ist bereits im archiv gelandet, kann man auf diese threads nicht mehr antworten? (denn aktuelle nachrichten sind ja noch bis zum 21.1 aufgührt und diese thread ist erst eine woche alt?)

danke erstmals für die hilfe soweit. ich habe beides probiert und schon wieder viel gelernt, aber nicht die lösung so hinbekommen... habe festgestellt das man aus den objekteigenschaften via dom das onclick-value bei buttons und z.B. checkboxen auslesen kann. bei mir ist es aber nur ein simples bild und dort kommt bei mir der wert "undefined", egal ob das bild angeklickt ist oder nicht?

ich referenziere auf diesen thread, da ich zu blöd war auf diesen zu antworten...:
http://forum.de.selfhtml.org/archiv/2007/1/t145237/#m942480

gruss
nicolas
---------------
Hi,

Im click-Handler bei tr fragst du nun ob, woher der Event kommt - das heißt, welches Element das Ziel des Events ist. Wenn der Event beim button-Element gestartet ist und von dort aus aufgestiegen ist, dann kannst du die Event-Behandlung abbrechen.

---------------
Warum nicht das Blubbern *einfach* mit stopPropagation() bzw. cancelBubble unterbinden? Dann kommt der Event des Buttons doch gar nicht mehr beim Elternelement an. Deine Lösung scheint mir, bei aller Morgenmüdigkeit, eher wie quer durch die Brust ins Auge ... ;-)

Gruß, Cybaer

--
Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
  1. im onclick gebe ich mit:

    onClick="tr_click_handler(this)"

    dann bekomm ich den tr mitgeliefert in der funktion:

    tr_click_handler(tr) (geparst)

    trotzdem hat dann die variabel target no properties:

    function tr_click_handler(e){
    e = e || window.event;
    var target = e.target || e.srcElement;
    alert(target.nodeName);
    //if (target.nodeName == "tr") {
       //alert('ok');
       //}
    }

    1. im onclick gebe ich mit:

      onClick="tr_click_handler(this)"

      Schau dir mal den Parameter an!

      dann bekomm ich den tr mitgeliefert in der funktion:

      tr_click_handler(tr) (geparst)

      trotzdem hat dann die variabel target no properties:

      function tr_click_handler(e){

      und jetzt hier diesen?

      du musst wenn du "inline" Events verwendest, also im HTML Code, das Eventobjekt explizit angeben.

      Also: onclick="tr_click_handler(event)"

      Struppi.

      --
      Javascript ist toll (Perl auch!)
      1. also nicht einfach this, sonder explizit event, ok gleich mal schauen...
        habe noch festgestellt das man mit this schon auch zum ziel kommen könnte: htmlinputobject bei der checkbox, htmlrowobject beim tr und htmlimageobject bei images. nur müsste ich jetzt in der funktion den objecttyp ev. mit object.type auslesen? hmmm...

        im onclick gebe ich mit:

        onClick="tr_click_handler(this)"

        Schau dir mal den Parameter an!

        dann bekomm ich den tr mitgeliefert in der funktion:

        tr_click_handler(tr) (geparst)

        trotzdem hat dann die variabel target no properties:

        function tr_click_handler(e){

        und jetzt hier diesen?

        du musst wenn du "inline" Events verwendest, also im HTML Code, das Eventobjekt explizit angeben.

        Also: onclick="tr_click_handler(event)"

        Struppi.

        1. Hi,

          habe noch festgestellt das man mit this schon auch zum ziel kommen könnte:

          mit this kommst Du zum Element-Objekt.

          htmlinputobject bei der checkbox, htmlrowobject beim tr und htmlimageobject bei images.

          "[object]" bei allen wenn Du einen IE vor Dir hast.

          nur müsste ich jetzt in der funktion den objecttyp ev. mit object.type auslesen? hmmm...

          Was ist für Dich in diesem Kontext der Typ?

          im onclick gebe ich mit:

          Bitte zitiere nur das, worauf Du Dich beziehst, und antworte in einer in Mitteleuropa üblichen Leserichtung, danke.

          Cheatah

          --
          X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
          X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
          X-Will-Answer-Email: No
          X-Please-Search-Archive-First: Absolutely Yes
          1. »»und antworte in einer in Mitteleuropa üblichen Leserichtung, danke.

            Leserichtung? Auf Gross- Kleinschreibung bezogen?

            »»Was ist für Dich in diesem Kontext der Typ?

            Ich sollte zum Unterbrechen des "bubbelns" auslesen können, welche Knotenelemente angeklickt wurden. Also wenn ich auf das Bild im TR klicke, kommt zuerst der onClick des Bildes, dann sollte der onClick des TR's unterbunden werden. Eben mit StopPropagation() resp. der anderen Funktion.

            1. Hi,

              »»und antworte in einer in Mitteleuropa üblichen Leserichtung, danke.
              Leserichtung? Auf Gross- Kleinschreibung bezogen?

              nein, von oben nach unten, nicht von der Mitte nach unten und dann wieder von oben bis zur Mitte.

              Ich sollte zum Unterbrechen des "bubbelns" auslesen können, welche Knotenelemente angeklickt wurden. Also wenn ich auf das Bild im TR klicke, kommt zuerst der onClick des Bildes, dann sollte der onClick des TR's unterbunden werden. Eben mit StopPropagation() resp. der anderen Funktion.

              Okay, also willst Du die nodeName-Eigenschaft auslesen, wenn ich Dich recht verstehe.

              Cheatah

              --
              X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
              X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
              X-Will-Answer-Email: No
              X-Please-Search-Archive-First: Absolutely Yes
              1. Was zu schreiben ich vergaß:

                Leserichtung? Auf Gross- Kleinschreibung bezogen?
                nein, von oben nach unten, nicht von der Mitte nach unten und dann wieder von oben bis zur Mitte.

                ... wobei natürlich Groß- und Kleinschreibung genau wie die übrige korrekte Rechtschreibung, Grammatik, Zeichensetzung usw. ebenfalls einer guten Lesbarkeit des Textes dienlich sind.

                Cheatah

                --
                X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
                X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
                X-Will-Answer-Email: No
                X-Please-Search-Archive-First: Absolutely Yes
      2. Wenn ich explizit den event mitgebe, erfahre ich ja nur, dass dies ein mouse-event war. das ist nicht sehr hilfreich?
        wenn ich "this" auslese, weiss ich was für ein objekt das ist, aber wenn ich jetzt mit event.type auslesen möchte, geht das nur bei der checkbox, bei tr und image ist der wert undefiniert.

        1. Bitte!
          die übliche Leserichtung ist von links nach rechts und von oben nach unten. Und wenn du das stehen läßt, auf was du antwortest, dann ist es lecihter zu verstehen was du meinst.

          Wenn ich explizit den event mitgebe, erfahre ich ja nur, dass dies ein mouse-event war. das ist nicht sehr hilfreich?

          Nein es ist sehr hilfreich, da der Event sehr viele Eigenschaften besitzt, die du asuwerten kannst und din deinem Beispiel auch tust. Verstehst du deinen Code?

          wenn ich "this" auslese, weiss ich was für ein objekt das ist, ...

          Dann weißt du NUR was für ein Objekt, genau.

          ...aber wenn ich jetzt mit event.type auslesen möchte, geht das nur bei der checkbox, bei tr und image ist der wert undefiniert.

          Verstehst du den Code, den du uns vorhin gezeigt hast?
          in diesem steht exakt, wie du aus dem Eventobjekt das Objekt ermittelst.

          Struppi.

          --
          Javascript ist toll (Perl auch!)
          1. Verstehst du den Code, den du uns vorhin gezeigt hast?
            in diesem steht exakt, wie du aus dem Eventobjekt das Objekt ermittelst.

            Bin noch nicht so geübt mit DOM. Aber ja, mein Fehler war nur, dass ich this (also das generierte Object als Parameter mitgegeben habe), anstatt den event. Jetzt funkts! Jetzt kann ich die Eigenschaft nodeName ermitteln und anschliessen das "Blubbern" abbrechen. Danke Molily, Struppi und Cheatah für Eure Hilfe!

            Kennt Ihr eine Beispielsite, die komplett nur anhand der XML-Struktur mit Javascript manipuliert wird? Nicht das das effizient oder sinnvoll wäre, rein nur um die Möglichkeiten aufzuzeigen?

  2. Hi,

    versteh ich nicht dieser thread ist bereits im archiv gelandet, kann man auf diese threads nicht mehr antworten? (denn aktuelle nachrichten sind ja noch bis zum 21.1 aufgührt und diese thread ist erst eine woche alt?)

    in diesem Forum werden Threads nicht nach ihrem Erstellungsdatum archiviert, sondern nach ihrer Nutzung. Werden regelmäßig neue Postings verfasst, ist es offenbar zu früh für eine Archivierung; reagiert tagelang niemand mehr, findet offenbar eine Diskussion nicht mehr statt, so das eine Archivierung sinnvoll ist. Manchmal kappt das Schwanzabschneider-Script dabei zu früh die Leitung - nun, es kann nicht hellsehen.

    habe festgestellt das man aus den objekteigenschaften via dom das onclick-value bei buttons und z.B. checkboxen auslesen kann.

    Ja, Du kannst den Event-Handler auslesen.

    bei mir ist es aber nur ein simples bild und dort kommt bei mir der wert "undefined", egal ob das bild angeklickt ist oder nicht?

    Bitte poste den Code ein wenig detaillierter. Idealerweise nennst Du einen Link zu einer Testseite.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes