私はゼロから 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 を使用して問題を解決しました。