jQuery插件中的全局变量
Global variables in jQuery plugin
我正在创建一个jquery插件。在那我使用了一些全局变量CCD_ 1就是其中之一。
一个函数inside an ajax call
为我分配了一些值。
callAjax = function (surl, pselector, pi, rec) {
$.ajax({
..
success: function (data) {
$.rmtableparams.recordsCount =10;
}
});
}
但是,当我尝试在其他函数中访问$.rmtableparams.recordsCount
时,它返回0。但奇怪的是,如果i alert anything
之前那个it will returns 10
是正确的。
如果我的剧本是
alert("hi");
alert($.rmtableparams.recordsCount);
第二个警报将显示10
但如果只有alert($.rmtableparams.recordsCount);
,则返回0
我对此感到奇怪。如果有人知道原因,请帮帮我。
分配$.rmtableparams.recordsCount =10;
在$.ajax
请求的success
回调中。因此,在ajax调用完成并收到响应之前,不会分配该值。这种情况发生得相当快,所以当您是第一个等待关闭$.rmtableparams.recordsCount: 0
0时,会收到ajax响应,并处理分配。然后,第二个警报显示新值。
如果忽略第一个警报,则呼叫仍在处理中,$.rmtableparams.recordsCount
值尚未更改
就这么简单:AJAX代表异步JavaScript和XML。异步是关键,但经常被忽视。。。
因为$.rmtableparams
不存在,所以不能直接设置$.rmtableparams.recordsCount
。
您首先需要设置$.rmtableparams
:
$.rmtableparams = {};
然后继续向对象添加数据:
$.rmtableparams.recordsCount = 10;
请确保正在触发成功回调。在回调中添加一个alert
或console.log
来进行检查。
相关文章:
- 全局变量和全局对象的属性之间有什么区别吗
- delete关键字在全局变量上的不同行为
- 在javascript函数中设置全局变量
- 如何将getJson的响应保存在全局变量中
- 从Javascript方法返回全局变量
- AngularJS中的封装窗口全局变量
- javascript隐式全局变量
- 如何从onclick函数设置全局变量并将其传递给另一个JS文件
- 如何使全局变量仅特定于该文件
- 在page.open()-PhantomJS中无法访问全局变量
- 使用全局变量来存储数字(JavaScript)
- 如何将变量声明为全局变量
- 在节点中创建文件全局变量
- 要求JS'ing一个没有全局$变量的jQuery插件
- 将全局变量传递给插件
- jQuery插件中的全局变量
- 使用属性来改变javascript插件中的全局变量
- 面板内容脚本和页面内容脚本之间的全局变量在firefox插件
- Firefox插件从*.port.on()设置全局变量
- 如何使用声纳JavaScript插件检测全局变量