关于jQuery实时点击事件的错误event.target

Phi*_*ret 2 jquery

当我使用以下内容注册click事件的处理程序时:

$('.drilldown-action > li').live('click', function(event){
    drilldown.loadActions($(event.target));
});
Run Code Online (Sandbox Code Playgroud)

使用HTML:

<ul class="drilldown-action">
    <li data-action="Dummy"><a href="#">Dummy</a> Dum</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

在浏览器中(使用Chrome)我点击a标签,我如何获得事件已注册的jQuery对象?我希望li元素是事件目标,因为这是我放在选择器中.我知道我可以使用.parent()这种情况,但有没有办法让对象与选择器匹配,而不是底部事件目标?使用.parent()也是一种痛苦,因为当li点击其他部分时,我不需要使用它.

Sel*_*gam 7

e.target 是链接标记.

您应该使用this获取li作为绑定到处理程序的元素的标记.

码:

$('.drilldown-action > li').live('click', function(event){
    drilldown.loadActions($(this));
});
Run Code Online (Sandbox Code Playgroud)

注意:从jQuery 1.7开始,该.live()方法已被弃用.使用.on()附加的事件处理程序.旧版jQuery的用户应该.delegate()优先使用.live().