我试图将点击绑定到没有特定类的所有元素.
我尝试了下面的内容,经过一些googleing,它看起来是正确的做法.
$('*:not(.class)').click(function() {
alert('Clicked...');
});
$(':not(.class)').click(function() {
alert('Clicked...');
});
Run Code Online (Sandbox Code Playgroud)
现在,我在写这篇文章时刚刚意识到,元素是在其他元素之上分层的,而点击下的所有元素也会引发点击?它是否正确?我认为就像执行以下代码一样,每次点击可获得3到6次"点击".
$('*').click(function() {
console.log('click');
});
Run Code Online (Sandbox Code Playgroud)
有人有光线吗?
编辑(已经):我刚刚想到了一个解决方法,如下:
$('*').click(function() {
if ($(this).hasClass('class')) {
console.log('click');
return false;
} else {
console.log('click');
}
});
Run Code Online (Sandbox Code Playgroud)
逻辑:这个"class"元素将是顶层元素,因此将触发第一次单击(理论制作),因此它具有我们返回/中断的类;
使用stopPropagation.这样可以防止clicked项目下方的所有元素也被触发.
$('*:not(.class)').click(function(event) {
event.stopPropagation();
alert('Clicked...');
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10159 次 |
| 最近记录: |