0

我想在 $.ajax() 函数中分配一个变量,以便下次调用该函数时它仍然可用...

这可能吗?

var xxx = 1;没有做这项工作。

谢谢!

4

3 回答 3

2

变量必须存储在静态位置,例如隐藏输入或数据属性中。

$('#hiddenId').val(1);
// Or
$('#someFooId').data('last-ajax-value', 1);

下次调用该函数时,使用它来获取先前的值:

var lastValue = $('#hiddenId').val();
// Or
var lastValue = $('#someFooId').data('last-ajax-value');

data文档:

描述:存储与匹配元素关联的任意数据

于 2012-05-28T08:55:16.607 回答
2

我认为您应该这样做并避免为此进行DOM操作...

(function($){
    var YourApp = {
        var your_vault : "",

        binders : function(){
            $('#button').on('click',YourApp.ajaxRequest);
        },
        ajaxRequest : function() {
            // Do something with YourApp.your_vault     
            $.ajax({
                url: 'http://someurl.com',
                succes: function(){
                    // Modifying your value:
                    YourApp.your_vault = 'A wonderfull new value';
                }
            });
        }
    };
    YourApp.binders();
})(jQuery); 

由于我没有来自您的应用程序的真实代码,因此我无法提供更准确的代码,但我认为您会明白的。

关键思想是范围。每当您将 var 置于较高范围内时,您都可以在较低范围内对其进行修改,而无需使用var关键字。

于 2012-05-28T09:06:13.480 回答
1

如果您的变量是在全局级别定义的,那么它可以在许多地方使用。

您需要了解变量作用域,这同样适用于 javascript,无论它在哪个函数中运行。

于 2012-05-28T09:01:20.877 回答