luckger: Inheritance

Hallo zusammen,

ich habe folgendes Problem:

ich habe einen div Container mit einem onclick Ereignis verbunden. Nun steht im Container jedoch ein Link. Wie bringe ich es fertig, dass das onclick Ereignis nicht ausgeführt wird, wenn ich auf den Link klicke?

<div onclick='test()'>
  <a href='#'>testlink</a>
</div>

Vielen Dank schonmal im voraus und ein schönes, sonniges Wochenende an alle,

luckger

  1. ich habe einen div Container mit einem onclick Ereignis verbunden. Nun steht im Container jedoch ein Link. Wie bringe ich es fertig, dass das onclick Ereignis nicht ausgeführt wird, wenn ich auf den Link klicke?

    Gar nicht.
    Das wäre ja auch unlogisch, der Link ist im DIV Container und dort hast du ein onclick Event registriert. Entweder deine Logik ist falsch oder du musst halt einen Workaround basteln.

    Struppi.

    1. [latex]Mae  govannen![/latex]

      ich habe einen div Container mit einem onclick Ereignis verbunden. Nun steht im Container jedoch ein Link. Wie bringe ich es fertig, dass das onclick Ereignis nicht ausgeführt wird, wenn ich auf den Link klicke?

      Gar nicht.
      Das wäre ja auch unlogisch, der Link ist im DIV Container und dort hast du ein onclick Event registriert. Entweder deine Logik ist falsch oder du musst halt einen Workaround basteln.

      Hmm, geht das auch nicht, wenn man dem inliegenden Link mit cancelBubble bzw stopPropagation() nachhlift? (hab damit noch nicht gearbeitet, weil ich solche Konstrukte wie der OP bisher nie benötigte)

      Cü,

      Kai

      --
      When the limos return for their final review, it's all thru'
      - all they can see is the morning goo.
      "There's no-one left alive - must be draw."
      So the Blackcap Barons toss a coin to settle the score.
      ie:{ fl:( br:< va:) ls:? fo:| rl:? n4:° ss:{ de:] js:| ch:? mo:| zu:|]
      1. Salut!

        Hmm, geht das auch nicht, wenn man dem inliegenden Link mit cancelBubble bzw stopPropagation() nachhlift? (hab damit noch nicht gearbeitet, weil ich solche Konstrukte wie der OP bisher nie benötigte)

        Mhmm! Das könnte sein, dass cancelBubble hier hilft, habe ich noch nie benutzt/gebraucht, deshalb bin ich neugierig, was der OP erreichen möchte.

        Sven

        1. Vielen Dank erstmal für die vielen Tipps.

          Das Ganze ist ein Left-Klick Menü à la Sharepoint. Der User klickt auf den div container, es öffnet sich ein Menü in dem lauter Links liegen. Nun liegt hier eben nur das Problem, dass das onclick Ereignis übernommen wird -- genau das will ich nicht haben.

          Ich werde mich also jetzt erstmal mit den beiden Funktionen beschäftigen und mich, soweit es nicht klappt, nochmals hier melden.

          Also nochmal vielen Dank,

          luckger

          Salut!

          Hmm, geht das auch nicht, wenn man dem inliegenden Link mit cancelBubble bzw stopPropagation() nachhlift? (hab damit noch nicht gearbeitet, weil ich solche Konstrukte wie der OP bisher nie benötigte)

          Mhmm! Das könnte sein, dass cancelBubble hier hilft, habe ich noch nie benutzt/gebraucht, deshalb bin ich neugierig, was der OP erreichen möchte.

          Sven

      2. Hmm, geht das auch nicht, wenn man dem inliegenden Link mit cancelBubble bzw stopPropagation() nachhlift? (hab damit noch nicht gearbeitet, weil ich solche Konstrukte wie der OP bisher nie benötigte)

        Wie Chrisrian schon schreibt, es geht. Das ist das was ich mit Workaround meine. Da ich vermute, dass das DIV Element nicht nur einen Link hat, wird er aber noch ein bisschen mehr Aufwand betreiben müssen oder für jeden Link eine solche Funktion schreiben. Aber es gibt auch eine andere Möglichkeit, du kannst über das Eventobjekt auch herausfinden, auf welchem Element der Event stattgefunden hat.

        Struppi.

  2. Salut!

    Deine Konstruktion hat einen Haken: du hast einen Eventhandler für ein div-Element registriert: beim Auftreten des Ereignises(event) 'onclick' soll deine Funktion test() ausgeführt werden. Nun hat dieses Element aber ein Kind-Element, welches ebenfalls auf dieses Ereignis reagieren soll.

    Was möchtest du denn erreichen?

    Sven

  3. Hi.

    ich habe einen div Container mit einem onclick Ereignis verbunden. Nun steht im Container jedoch ein Link. Wie bringe ich es fertig, dass das onclick Ereignis nicht ausgeführt wird, wenn ich auf den Link klicke?

    <div onclick='test()'>
       <a href='#' onclick="(function(e){if(e.stopPropagation)e.stopPropagation();e.cancelBubble=true;})(event);">testlink</a>
    </div>

    So in etwa...