javascript - 有没有办法防止 jQuery 事件冒泡到特定的 div?

标签 javascript jquery html css

在下面的代码中,是否有一种方法可以在单击Hello 时允许除div 之外的所有内容接收事件?

HTML:

<html>
<body>
<div>
    <h1>
        <a href="#">
            <span>Hello</span>
        </a>
    </h1>
</div>
</body>
</html>

JavaScript:

window.addEventListener("load", function () {
    var els = document.querySelectorAll("*");
    for (var i = 0; i < els.length; i++) {
        els[i].addEventListener("click", function () {
            alert('Click event fired on the ' + this.nodeName + ' element');
        });
    }
});

JSFiddle

最佳答案

您可以使用 *:not(div) 选择器:

var els = document.querySelectorAll("*:not(div)")

JSFiddle

关于javascript - 有没有办法防止 jQuery 事件冒泡到特定的 div?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27493070/

相关文章:

javascript - 如何在单个导航页面中更改 Logo 图像

html - 带有文本的 Twitter Bootstrap 3.0 轮播格式

jquery - 我想在列表框中未选择任何内容时禁用按钮

javascript - localStorage 在 Chrome 之外的任何浏览器中都不会清除

Javascript注入(inject)覆盖响应式 slider 的CSS

javascript - 如何使多个 HTML 表格可排序?

html - 更改 iframe 上的鼠标光标

基于数字选择的 Javascript 计算 - HTML

javascript - 如何从响应数组数据设置数据对象

javascript - 是否有用于表达公式的 DSL?