Gau*_*hah 8 javascript jquery javascript-events
假设我有标签,我附加了两个点击事件:
$('#l1').bind('click',function(){
alert('label clicked');
}
$('#l2').bind('click',function(){
alert('label2 clicked');
}
$('#l3').bind('click',function(){
alert('label3 clicked');
}
$('label').bind('click',function(){
if($(this).hasClass('disabled')
return false
}
<label id='l1'>hi</label>
<label id='l2' class="disabled">bye</label>
<label id='l3'>hi</label>
Run Code Online (Sandbox Code Playgroud)
现在,我不希望在disabled单击具有类的标签时显示警报.有可能吗?
注意:alert只是一个虚拟的东西..我正在执行一组操作,而不是那个...每个不同的实际标签
nnn*_*nnn 22
如果多个事件处理程序绑定到同一事件的同一元素,则处理程序将按它们绑定的顺序调用.如果event.stopImmediatePropagation()在特定处理程序内调用,它将停止调用后续处理程序.
所以修改你的$('label').bind()如下:
$('label').bind('click',function(event){
if($(this).hasClass('disabled') {
event.stopImmediatePropagation();
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
并将其移到你的其他.bind()电话之上.然后该特定处理程序将首先执行,并有机会阻止其他处理程序执行.
(注意,.stopImmediatePropagation()它不一样.stopPropagation()) - 后者停止事件冒泡DOM树,但不会停止同一元素上的其他处理程序.)
| 归档时间: |
|
| 查看次数: |
3574 次 |
| 最近记录: |