2016-10-29 4 views
0

Ich habe in meinem Projekt ein Fenster klicken EventListener und einige Klickereignisse auf div Elemente. Wenn ich auf das div click -Ereignis auf diesem div-Element klicke (richtig) und das Fenster click eventListener feuert (nicht korrekt).Div Ereignis sprudelt

Kann ich das div-Element sprudeln, dass das Fenster click eventListener das Ereignis nicht auslöst?

Zur besseren Demonstration jsfiddle:

window.addEventListener('mouseup', onDocumentMouseUp, false); 
 

 
function onDocumentMouseUp(event){ 
 
\t alert('dont fire this event on button click') 
 
} 
 

 
$('#button').on({ 
 
    click: function (event) { 
 
\t \t alert('button click event'); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="button" style="height: 30px; width: 30px; background: blue"></div>

Ich hoffe, jemand kann mir helfen.

+0

tun Sie 'mouseup' auf Fenster binden müssen? oder 'klick'? –

Antwort

0

Ja, können Sie event.stopPropagation() wie folgt verwenden:

$('#button').on({ 
    click: function (event) { 
     alert('button click event'); 
     event.stopPropagation(); 
    } 
}); 
+0

Danke für deine Antwort, aber ich habe es versucht und es funktioniert nicht. Wenn ich auf die Schaltfläche klicke, wird das Fenster eventListener ausgelöst. –

+0

müssen Sie an 'mouseup' im Fenster binden? oder 'klick'? –

+0

Ich weiß nicht, was du mit bind meinst, aber ich brauche den click eventListener im Fenster. Ich brauche das andere Event nur auf dem Div-Element. –