我是否可以在正在进行的Ajax请求中发出Ajax请求(例如,在成功回调函数上)?

我是否可以在正在进行的Ajax请求中发出Ajax请求(例如,在成功回调函数上)?,ajax,jquery,Ajax,Jquery,我有一个jQuery应用程序,一个购物车,如果文本输入字段发生更改,它会将信息发回服务器。这是在Ajax请求中完成的。现在,如果Ajaxrequest成功,我想异步重新加载shoppingcart。代码如下: $(document).ready(function() { var jInput = $(":input"); jInput.change(function() { var vareAntal = $(this).val(); var v

我有一个jQuery应用程序,一个购物车,如果文本输入字段发生更改,它会将信息发回服务器。这是在Ajax请求中完成的。现在,如果Ajaxrequest成功,我想异步重新加载shoppingcart。代码如下:

$(document).ready(function() {

    var jInput = $(":input");
    jInput.change(function() {
        var vareAntal = $(this).val();
        var vareID = $(this).siblings("input#vareID").val();
        $.ajax({
            type: 'POST',
            url: 'checkout.aspx',
            data: { 'ID': vareID, 'Antal': vareAntal },
            success: function() {
                $("#newbasket").load(location.href + " #newbasket>*", "");
            }
        });
    });
});
这是可行的,但只有一次!如果我更改文本输入字段,在第一次加载页面后,ID为newbasket的div将异步重新加载。但如果我再次尝试改变它,什么都不会发生

我曾经尝试过使用Firebug进行一些调试,第一次更改文本输入字段时,它会触发一个POST事件,然后在POST事件成功时触发一个GET事件。但在那之后,当我再次更改文本输入字段时,什么也不会发生

那么,如何在每次文本输入更改后触发.load()方法呢

我也尝试过使用.ajaxComplete()函数,但这当然会导致一个无限循环,因为.load()是一个ajax对象。

而不是,在这里使用,如下所示:

jInput.live('change', function() {
这将使选择器也能在添加的任何新输入上工作。当您像当前一样替换元素时,它们的事件处理程序将丢失(或者更确切地说,不会重新创建,因为您有新元素)。正是出于此目的,它会侦听来自旧元素和新元素的事件,而不管它们是何时添加的。

请使用此处,例如:

jInput.live('change', function() {
这将使选择器也能在添加的任何新输入上工作。当您像当前一样替换元素时,它们的事件处理程序将丢失(或者更确切地说,不会重新创建,因为您有新元素)。正是出于这个目的,它侦听来自新旧元素的事件,而不管它们是何时添加的