2009-06-05 13 views

Antwort

9

Das hängt natürlich vom Browser ab.

In neueren Browsern, rufen

event.stopPropagation(); 

auf dem Ereignisobjekt.

In älteren IE setzen

window.event.cancelBubble = true 

lesen abot die Details bei Quirks mode.

6

Dies ist auf Ereignisblasen zurückzuführen.

<div onclick="callme();"> 
    <a href='#' onclick="return Callme2();">Hi</a> 
</div> 

stellen Sie sicher, Callme2() kehrt false von sprudelt das Ereignis zu stoppen.

0

Ich habe es getestet und es scheint das innere Ereignis zuerst ausgelöst wird. Das innere Ereignis könnte also eine Art Flagge setzen. Dann betrachtet das äußere Ereignis dieses Flag: Wenn es gesetzt ist, löscht das äußere Ereignis es und kehrt zurück. Wenn nicht, tut es, was auch immer es normalerweise tut. Nicht so schick wie die anderen Antworten, die gepostet wurden, aber ich denke, es würde funktionieren und sollte browserunabhängig sein, vorausgesetzt, dass alle Browser das innere Ereignis zuerst auslösen (was ich denke, dass sie das tun, basierend auf der hier geposteten Diskussion)

+1

Ja, das ist viel zu kompliziert. Stoppen Sie einfach die Ereignisausbreitung, die der "richtige" Weg ist, dies zu tun. – Tyson

Verwandte Themen