2

我无法让以下内容在我的项目中工作。

我目前在整个代码库中都有几个对方法的调用load(),例如:

$('#cart').load('/cart/user/12312');

我现在要做的是将一个侦听器附加到#cartdom 元素,当这个元素的内容像上面那样加载时,我可以执行一些代码来指示它正在加载。这是我到现在为止的:

$('#cart').ajaxSend(function (event, xhr, settings) {
    if ($(event.target).is('#cart')){
        $(event.target).html('loading ...');
    }
});

我现在面临的问题是此事件会触发所有 ajax 请求,即使是那些没有#cart作为目标的请求。event.target似乎总是如此,或者#cart无论我怎么称呼.ajaxSend()。即使在进行完全不同的$.ajax()orload()调用时,即使不直接将内容加载到 dom 元素中,事件也会触发#cartasevent.target

有谁知道如何解决这个问题?我想执行一些代码,只有在调度 ajax 调用时才会将其内容加载到#cart

PS:我知道这ajaxSend是 jquery 中的全局 Ajax 事件之一,但它应该以某种方式从处理程序派生事件的上下文不是吗?

演示:http: //jsfiddle.net/cWRwf/1/

4

0 回答 0