onclick侦听器侦听子元素单击

时间:2014-07-31 16:10:49

标签: javascript jquery

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

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

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

以下是结构示例:

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

有没有办法阻止&#34; i&#34;节点如果被点击则执行该功能? 非常感谢帮助。

1 个答案:

答案 0 :(得分:4)

只需比较事件的目标:

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

(请注意,这利用了jQuery规范化事件对象的事实,因此在所有浏览器中都有&#34; target&#34;属性。)