jQuery - 绑定点击除了类之外的所有元素?

时间:2011-05-10 06:55:11

标签: jquery click

我正在尝试将点击绑定到所有没有特定类的元素。

我尝试了以下操作,经过一些谷歌搜索,它看起来是正确的做法。

$('*:not(.class)').click(function() {
    alert('Clicked...');
});

$(':not(.class)').click(function() {
    alert('Clicked...');
});

现在,我在写这篇文章时刚刚意识到,元素是在其他元素之上分层的,而点击下的所有元素也会引发点击?它是否正确?我认为就像执行以下代码一样,每次点击会产生3到6次“点击”。

$('*').click(function() {
    console.log('click');
});

有人有光线吗?

编辑(已经):我刚想到了一个解决方法,如下所示:

$('*').click(function() {
    if ($(this).hasClass('class')) {
        console.log('click');
        return false;
    } else {
        console.log('click');
    }
});

LOGIC:这个“class”元素将是顶层元素,因此会触发第一次点击(理论制作),因此它具有我们返回/中断的类;

1 个答案:

答案 0 :(得分:9)

使用stopPropagation。这将阻止clicked项下面的所有元素也被触发。

$('*:not(.class)').click(function(event) {
    event.stopPropagation();
    alert('Clicked...');
});