在$ .ajax()函数内分配变量

时间:2012-05-28 08:53:53

标签: javascript jquery scope

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

这可能吗?

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

谢谢!

3 个答案:

答案 0 :(得分:2)

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

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

下次调用该函数时,使用此函数获取上一个值:

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

data docs:

  

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

答案 1 :(得分: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关键字。

答案 2 :(得分:1)

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

您需要了解variable scoping,这同样适用于javascript,无论运行哪个功能。