我在check box
上使用了一些JQ
的東西,即使父母div
被點擊。我正在切換check box
的值。點擊div工作正常,但當你點擊複選框時,該功能被調用兩次。有什麼辦法可以解決這個問題嗎?下面是我的代碼(Fiddle) HTML:如何停止jQuery中的事件冒泡?
<div class="check-unit">
<input type="checkbox" class="check" />
<p class="brandList">Model</p>
</div>
JQ:
$('.check').on('change',function(e){
e.stopImmediatePropagation();
if($(this).is(':checked')){
console.log("checked");
}else{
console.log("unchecked");
}
});
$('.check-unit').on('click',function(e){
var checkbox = $(this).children('.check'),
chhhk= checkbox.attr('checked') ? false : true;
checkbox.attr('checked',chhhk);
$(this).children('.check').change();
});
我已經看到了stackoverflow
eventbubbling
問題,但仍然感到困惑如何做到這一點。 FIDDLE
你可以做多種方式,'event.stopPropagation ()'或'event.stopImmediatePropagation()'或簡單地'event.preventDefault()' – Praveen
**注意:**使用'.prop()'而不是'.attr'作爲布爾屬性值 – Anton
@Praveen'preventDefault'和'stopPropagation'完全不同,不可互換 – tborychowski