Javascript 主干点击锚事件

Javascript 主干点击锚事件,javascript,jquery,html,backbone.js,Javascript,Jquery,Html,Backbone.js,我正在从头开始一个Web应用程序,我正在使用主干网。因此,首先,我尝试将我的整个应用程序与一个视图关联,将一些带有内部链接的锚绑定到一个点击事件,该事件获取href并导航到该事件,如下所示: var App = new ( Backbone.View.extend( { ... events : { 'click a[data-internal]' : function( event ) { event.preventDefault(); Backbone

我正在从头开始一个Web应用程序,我正在使用主干网。因此,首先,我尝试将我的整个应用程序与一个视图关联,将一些带有内部链接的锚绑定到一个点击事件,该事件获取href并导航到该事件,如下所示:

var App = new ( Backbone.View.extend( {
...
events : {
    'click a[data-internal]' : function( event ) {
        event.preventDefault();
        Backbone.history.navigate( event.target.pathname, { trigger : true } );
    }
},
start : function() {        
    Backbone.history.start( { pushState : true } );              
}

}))({ el : document.body });

$( function() { App.start(); });
然后我有以下html:

<li>
    <a href="/messages" data-internal="true"><img src="assets/img/mail.png" alt="Mensagens" title="Mensagens"></a>
</li>
我的问题是,当触发事件时,event.target始终与img子级关联,而不是与锚关联。这似乎不是关于冒泡的事情。我已经试过使用e.stopPropagation。没有内部img,工作正常

我不明白为什么会这样。有人能给我解释一下吗

非常感谢

编辑:
我按照ho.s的建议使用event.currentTarget解决了这个问题。

我无法解释为什么会发生这种情况,但是如果您记录event console.logevent,您将看到锚点就是currentTarget,我们已经知道的图像是:-target元素。因此,您可以使用event.currentTargetHaks来寻址锚点!我不知道存在一个目标和当前目标。知道我理解这个问题。@ho.s:和之间的区别是由于事件冒泡:您正在单击,但在任何人关心它之前,事件冒泡到了。currentTarget通常是主干应用程序中所需的内容,因为它往往是一个视图。