javascript - jQuery 插件中的全局变量

标签 javascript jquery jquery-plugins global-variables

我正在创建一个 jquery 插件。我正在使用一些全局变量 $.rmtableparams.recordsCount: 0 就是其中之一。

我从 ajax 调用内的一个函数分配了一些值。

 callAjax = function (surl, pselector, pi, rec) {
 $.ajax({
 ..
   success: function (data) {
           $.rmtableparams.recordsCount =10;
    }
  });
  }  

但是当我尝试在其他函数中访问 $.rmtableparams.recordsCount 时,它返回 0。但奇怪的是,如果 我在该 之前发出任何警报 >它将正确返回 10

即:如果我的脚本是

alert("hi");
alert($.rmtableparams.recordsCount);

第二个警报将显示 10

但如果只有 alert($.rmtableparams.recordsCount); 存在,则返回 0

我对此感到好奇。如果有人知道原因请帮助我。

最佳答案

赋值 $.rmtableparams.recordsCount =10; 位于 $.ajax 请求的 success 回调内部。因此,在 ajax 调用完成并收到响应之前,不会分配该值。这种情况发生得相当快,因此当您第一次 alert 等待关闭时,就会收到 ajax 响应,并处理分配。然后,第二个警报显示新值。

如果您忽略第一个警报,则调用仍在处理中,并且 $.rmtableparams.recordsCount 值尚未更改。
就这么简单:AJAX 代表异步 JavaScript 和 XML。异步是关键,但经常被忽视......

关于javascript - jQuery 插件中的全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17669575/

相关文章:

php - 中间带点的分页用 PHP 生成

javascript - 在图像预加载期间未检测到错误事件?

javascript - floatThead 和 bootstrap downdrop

javascript - 仅使用 JS 单击页面中任意位置时需要打印 Dom 路径

javascript - Vue.js - 未捕获的类型错误 : Cannot read property 'push' of undefined at <anonymous>:1:12

java - JQuery TokenInput 不显示搜索结果

jquery - 向 jQuery 对象添加(读取和写入)属性

javascript - Jquery 复选框选中和未选中事件

javascript - 使用js/html5开始游戏开发

javascript - 当选择文件时,Jquery 显示一个或多个文件名