Inheritance
luckger
- javascript
0 Struppi
0 Kai3450 Sven Schrodt0 luckger
0 Struppi
0 Sven Schrodt0 Christian S.
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
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.
[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
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
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
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.
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
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...