1

我正在从头开始一个 Web 应用程序,并且我正在使用 Backbone。所以一开始我试图让我的整个应用程序与一个视图相关联,将一些锚(带有内部链接)绑定到一个点击事件,该事件获取 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 解决了这个问题。

4

0 回答 0