我想在 $.ajax() 函数中分配一个变量,以便下次调用该函数时它仍然可用...
这可能吗?
var xxx = 1;
没有做这项工作。
谢谢!
变量必须存储在静态位置,例如隐藏输入或数据属性中。
$('#hiddenId').val(1);
// Or
$('#someFooId').data('last-ajax-value', 1);
下次调用该函数时,使用它来获取先前的值:
var lastValue = $('#hiddenId').val();
// Or
var lastValue = $('#someFooId').data('last-ajax-value');
描述:存储与匹配元素关联的任意数据
我认为您应该这样做并避免为此进行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
关键字。
如果您的变量是在全局级别定义的,那么它可以在许多地方使用。
您需要了解变量作用域,这同样适用于 javascript,无论它在哪个函数中运行。