我有兩個事件綁定到兩個對象,一個在另一個內,具有相同的大小。我們稱之爲container
和content
。這兩個事件都發揮着不同的作用。 content
上的事件是默認設置的,因爲我無法刪除它,所以我需要一種方法來防止它(或暫時取消設置)。在父級上觸發點擊事件,但防止兒童點擊事件
我想單擊它們只有與container
相關的事件被觸發。是否可能。什麼是最好的辦法來實現它?
下面的例子。如果一切正常,單擊白色方塊應變成綠色,否則變成紅色。
$(document).on('click', '#container', goGreen)
$(document).on('click', '#content', goRed)
function goGreen(event)
{
$('#content').addClass('green')
showClasses()
// Now stop!!!
// Don't run the click event on #content!!!
}
function goRed(event)
{
$('#content').addClass('red')
showClasses()
}
function showClasses()
{
$('#classes').html($('#content').attr('class'))
}
#content {
display: inline-block;
width: 100px;
height: 100px;
border: 1px solid #000;
cursor: pointer;
}
.green {
background-color: lightgreen;
}
.red {
background-color: tomato;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="container">
<a id="content"></a>
</div>
<p id="classes"></p>
使用'event.stopPropagation()'來阻止事件冒泡到父母 – guradio
我想我正在尋找其他方法。阻止孩子直接進入父母。 –
如果我理解正確的話,這意味着''上content' click'處理器將永遠不會觸發。我對嗎 ? – abhishekkannojia