gpt4 book ai didi

javascript - 函数中的全局变量值不更新

转载 作者:行者123 更新时间:2023-12-02 17:56:42 33 4
gpt4 key购买 nike

我正在使用the jQuery fileupload plugin并像这样配置它:

jQuery(document).ready(function() {
jQuery("#fileupload").fileupload({
dataType: "json",
url: "ajax_handler.php?globalVar=" + globalVar,
send: function (e, data) {

},
done: function (e, data) {

}
});

....

其中 globalVar 是(等等)全局变量。

问题是,如果我更改 globalVar 的值,然后进行文件上传(使用 AJAX 的 jQuery 文件上传插件,以便页面不会更改),则 URL请求具有原始的 globalVar 值(页面首次加载时的值)。

为什么会发生这种情况?

最佳答案

当您创建文件上传小部件时,您将向其传递一个配置对象。该对象有许多属性,其中包括 url

属性值在创建对象时进行评估(在您的情况下,当您在 $(document).ready() 中创建文件上传小部件时)。该对象不知道 globalVar 变量,因为分配的值:

"ajax_handler.php?globalVar=" + globalVar

计算为一个简单的字符串(您没有向其传递对 globalVar 或类似内容的引用)。只有当您将一个函数分配给引用 globalVarurl 属性时,您似乎期望的行为才会发生(我不知道文件上传是否插件支持此)。

因此,即使您稍后更改 globalVar,文件上传小部件的 url 配置选项也将保持不变。如果你想改变它,你需要再次显式分配它。

关于javascript - 函数中的全局变量值不更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20924150/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com