javascript - 从 jQuery 选择中排除元素

标签 javascript jquery

我正在尝试获取 .click()事件div.content除非单击具有特定类别的内容,例如 .noclick 。示例 html:

<div class="content">
    <a href="#" class="noclick">
</div>

这样做不起作用,因为 <a>从技术上讲,标签不在选择范围内:

$('.content').not('.noclick').click(function(){/*blah*/});

如果我点击 .content 上的任意位置,如何才能使点击功能起作用?除了类 .noclick 的东西?

最佳答案

您必须将它们从回调中排除:

$('.content').click(function(e) {
    if ($(e.target).hasClass('noclick')) return;
});

或者阻止事件离开这些元素:

$('.noclick').click(function(e) {
    e.stopPropagation();
});

我会选择第二个。您只需删除它即可,当前的代码(减去 .not())就会起作用。

关于javascript - 从 jQuery 选择中排除元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16248881/

相关文章:

javascript - 带有标签的 Twitter Bootstrap 下拉列表

javascript - Jquery 1.8,检查元素是否隐藏

javascript - 图像上的标题文字

javascript - 从 textarea 获取文本并将其附加到隐藏的输入

javascript - 在 onclick 事件中传递变量

javascript - 选择后更改选项

javascript - 单击时,将元素带到窗口顶部(带偏移)

javascript - 如何使用ajax刷新动态生成的div?

javascript - 如何从回调函数中获取变量的值?

javascript - react : Using ES6 component in TS component: TS2605: JSX element type 'xxx' is not a constructor function for JSX elements