1

私はゼロから Web アプリケーションを開始しており、Backbone を使用しています。最初に、アプリ全体を View に関連付け、(内部リンクを使用して) いくつかのアンカーを、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() を使用しようとしました。内部の画像がなくてもうまくいきます。

なぜこれが起こるのかわかりません。誰かが私にそれを説明できますか?

どうもありがとう ;)

編集: ho.s が提案したように、event.currentTarget を使用して問題を解決しました。

4

0 に答える 0