2016-10-29 10 views
0

私のプロジェクトでは、ウィンドウのクリックeventListenerとdiv要素のいくつかのクリックイベントがあります。 divをクリックすると、このdiv要素のclickイベント(正しい)とウィンドウのclick eventListenerが起動します(正しくはありません)。Divイベントバブリング

divをドラッグして、ウィンドウのclickイベントリスナーがイベントを発生させないようにすることはできますか?より良いデモンストレーション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>

私は、誰かが私を助けることができると思います。

+0

あなたは、ウィンドウ上mouseup' 'にバインドする必要がありますか?または 'クリック '? –

答えて

0

はい、あなたはこのようなevent.stopPropagation()を使用することができます。

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

あなたの答えをありがとうが、私はこれを試して、それは動作しません。ボタンをクリックすると、ウィンドウのeventListenerが起動します。 –

+0

ウィンドウで 'mouseup'にバインドする必要がありますか?または 'クリック '? –

+0

bindとは何を意味するのか分かりませんが、私はwindow上でclick eventListenerが必要です。他のイベントはdiv要素にのみ必要です。 –

関連する問題