javascript - 处理对元素的点击,但不处理对该元素内链接的点击

标签 javascript jquery

如何处理对元素的点击,而不是对该元素内链接的点击? 假设我有以下内容

<div class="section">
    Some text blah blah
    <a href="#">Link</a>
</div>
<script>
    $(".section").click(function() {
        // code to expand/collapse section
    });
</script>

而且我希望用户能够单击 .section 以展开/折叠它,但我不希望在他们单击该部分中的链接时发生这种情况。

最佳答案

您可以检查事件目标,只有当它是div 时才执行某些操作。这是一个例子:

$(".section").click(function(e) {
    if(e.target.tagName !== "DIV") {
      //Not the div! 
    }
});

您可以测试 target 的各种属性,例如,如果您有其他子 div 元素,但不想在这些元素上注册点击,您可以使用 className 属性:

e.target.className !== "section"

这是一个working example (使用 tagName 属性)。

关于javascript - 处理对元素的点击,但不处理对该元素内链接的点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6522158/

相关文章:

javascript - 如何检查对象中的所有属性是否未定义

javascript - Css、html、javascript 中的星形进度条

javascript - 使用屏幕 Chrome 扩展捕获音频

jquery - 光滑的 slider 转到第一张幻灯片

jquery.next();定位下一个第二个或第三个元素

javascript - 如何使每个循环在第一个 true 条件下停止

javascript - 如何从 FileList 中删除文件

javascript - 预期警报 ('hi' ) DOM 准备好了吗?

javascript - 日期类型的输入字段部分清除

javascript - 链接滚动以移动对象