私のプロジェクトで以下を機能させるのに問題があります。
load()
現在、コードベース全体に散在するメソッドへの呼び出しがいくつかあります。次に例を示します。
$('#cart').load('/cart/user/12312');
ここでやりたいのは、#cart
dom要素にリスナーをアタッチすることです。この要素のコンテンツが上記のように読み込まれると、読み込まれていることを示すコードを実行できます。これは私が今まで持っていたものです:
$('#cart').ajaxSend(function (event, xhr, settings) {
if ($(event.target).is('#cart')){
$(event.target).html('loading ...');
}
});
私が今直面している問題は、このイベントが#cart
、ターゲットとして持っていないものも含めて、すべてのajaxリクエストに対してトリガーされることです。event.target
いつものように、#cart
または私が呼んでいるものは何でも.ajaxSend()
。完全に異なる$.ajax()
またはload()
呼び出しを行う場合でも、コンテンツをdom要素に直接ロードしなくても、イベントはとしてトリガーさ#cart
れます。event.target
誰もがこれを解決する方法を知っていますか?コンテンツをロードするajax呼び出しがディスパッチされたときにのみ、いくつかのコードを実行したい#cart
PS:それajaxSend
はjqueryのグローバルAjaxイベントの1つですが、ハンドラーからイベントのコンテキストを派生させることはどういうわけか可能であるはずです。
デモ: http: //jsfiddle.net/cWRwf/1/