javascript - onclick 监听器监听子元素点击

标签 javascript jquery

所以我有以下事件监听器:

$("#searchArea dl dd a").on('click',function(e){
    //code
});

我希望它仅在单击“dd”节点(位于#searchArea div 中)内的“a”节点时执行该功能,但我在“a”节点内也有一些“i”节点.显然,事件监听器在单击时也会执行该功能。

结构示例:

<div id="searchArea">
    <dl>
        <dd>
            <a>
                <i></i>
            <a>
        <dd>
    <dl>
</div>

有什么方法可以阻止“i”节点在被点击时执行函数吗? 非常感谢您的帮助。

最佳答案

只比较事件的目标:

$("#searchArea dl dd a").on('click',function(e){
    if (e.target !== this) return;
    //code
});

(请注意,这利用了 jQuery 规范化事件对象这一事实,因此在所有浏览器中都会有一个“目标”属性。)

关于javascript - onclick 监听器监听子元素点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25063950/

相关文章:

javascript - jquery函数中的不同值

javascript - jquery appendTo 元素不遵守 css

jquery - 如何在第二次点击时反转CSS动画

javascript - innerHTML 不循环表

javascript - 如何清除或替换缓存的图像

javascript - 将字符串转换为可存储的变量名称和值(作为字符串和对象)

jquery - 使用 jQuery,如果我们附加一个脚本元素,为什么文件的 URL 会添加 ?_=timestamp?

javascript - 从用户界面动态添加新的 WTForms FieldList 条目

javascript - 同一页面上具有不同 div id 的多个 D3 TreeMap

javascript - 视差 - 偏移元素,绑定(bind)到滚动