2011-05-22 82 views
4

有兩個嵌套元素,兩者都有不同的click操作。
當內部元素被點擊時,我需要停止外部元素動作。jQuery在第一次elevent後停止「單擊」操作

HTML:

<div id='out'> 
    <div id='in'></div> 
</div> 

的jQuery:

$('#out').click(function(){alert('OUT div is pressed')}) 
$('#in').click(function(){alert('IN div is pressed')}) 

我需要在按下in,只執行他的行動。 out的腳本應該沒有任何操作。

如何解決?

回答

8

您應該使用stopPropagation():

$('#in').click(function(e){ 
    alert('IN div is pressed') 
    e.stopPropagation(); 
}); 
0

我認爲你應該這樣做:參考

0
$('#out').click(function(){ 
    alert('OUT div is pressed'); 
}); 
$('#in').click(function(){ 
    $('#out').unbind('click'); 
    alert('IN div is pressed'); 
}); 

$('#out').click(function(){alert('OUT div is pressed')}) 
$('#in').click(function(event){ 
alert('IN div is pressed'); 
event.stopPropagation(); 
} 
) 

here或者你可以停止傳播該事件,但您無法確定哪個事件處理程序將被觸發f irst(capture vs bubble events):

$('#in').click(function(e){ 
    e.stopPropagation(); 
    alert('IN div is pressed'); 
}); 
相關問題