Nils3: OnClick event

Hallo,

ich habe eine tabelle und würde gerne bei einem klick in eine tabellenzelle eine javascript aktion ausführen (d.h. onclick handler in td benutzen).  Nun habe ich aber auch normale links in der tabelle, und bei denen möchte ich die besagte javascript funktion nicht ausführen.  Leider kriegt das TD das click event auch dann mit wenn ich auf einen link klicke.

Beispiel:

<table>
 <tr>
  <td onclick="alert('td..');">
   TD
   <a href="javascript:alert('a..');">link</a>
  </td>
 </tr>
</table>

Wenn man in dem fall auf "link" klickt, dann kommt zuerst die "td.." meldung und dann die "a.." meldung.

Gibt es irgendeine möglichkeit zu verhindern dass das td element das click event mitbekommt?

Vielen Dank,

nils

  1. Hallo,

    Das Stichwort lautet Event Bubbling, dazu findest du viele Infos im Forumsarchiv und in der SELFHMTL-Doku.

    Gibt es irgendeine möglichkeit zu verhindern dass das td element das click event mitbekommt?

    <a href="..." onclick="event.cancelBubble = true; if (event.stopPropagation) event.stopPropagation();">

    Bei einer Handlerfunktion: </archiv/2007/3/t148467/#m963289>

    Mathias

    1. Hallo,

      Das Stichwort lautet Event Bubbling, dazu findest du viele Infos im Forumsarchiv und in der SELFHMTL-Doku.

      Gibt es irgendeine möglichkeit zu verhindern dass das td element das click event mitbekommt?

      <a href="..." onclick="event.cancelBubble = true; if (event.stopPropagation) event.stopPropagation();">

      Bei einer Handlerfunktion: </archiv/2007/3/t148467/#m963289>

      Mathias

      Vielen Dank, das ist genau wonach ich suchte.

  2. Beispiel:

    <table>
    <tr>
      <td onclick="alert('td..');">
       TD
       <a href="javascript:alert('a..');">link</a>
      </td>
    </tr>
    </table>

    Bevor ich versuchen würde das Verhalten zu ändern, wäre meine Frage ist so ein Konstrukt sinnvoll?

    Struppi.

  3. Hallo Nils,

    Nun habe ich aber auch normale links in der tabelle, und bei denen
    möchte ich die besagte javascript funktion nicht ausführen.

    Kann sein, dass ich dein Problem falsch verstanden habe, aber das Einfachste
    wäre dann doch, den <td>-onclick Event nur solchen Zellen zuzuweisen, die
    kein <a>-Tag enthalten. Oder?!

    Grüße, dicon