Ich verwende derzeit jQuery, um ein div anklickbar zu machen und in diesem div habe ich auch Anker. Das Problem, auf das ich stoße, ist, dass wenn ich auf einen Anker klicke, beide Klickereignisse (für das div und den Anker) auslösen. Wie verhindere ich, dass das Onclick-Ereignis des DIVs ausgelöst wird, wenn auf einen Anker geklickt wird?Wie verhindere ich, dass das Onclick-Ereignis eines Elternteils ausgelöst wird, wenn auf einen Child-Anker geklickt wird?
Hier ist der gebrochene Code:
JavaScript
var url = $("#clickable a").attr("href");
$("#clickable").click(function() {
window.location = url;
return true;
})
HTML
<div id="clickable">
<!-- Other content. -->
<a href="http://foo.com">I don't want #clickable to handle this click event.</a>
</div>
Große Antwort. Gut zu wissen gibt es auch Optionen. –
+1! Einen Klick-Handler mit stopPropagation anzuhängen, ist ein sehr netter Trick, danke! – Thomas
Wenn Sie eine Reihe von Elementen haben, auf die Sie die Weiterleitung verhindern möchten, können Sie feststellen, dass das übergeordnete Element und der Kopf verhindern, dass es auch dort aufsteigt. Also, anstatt alle Links in einem div abzufangen, sagen wir zum Beispiel, fangen Sie einfach den Klick selbst auf das div selbst ab und verhindern Sie, dass es höher geht und Sie gesetzt sind. – sucitivel