[英]Global variable value in function doesn't update
我正在使用jQuery fileupload插件並將其配置如下:
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
的值然后執行文件上傳(使用jQuery文件上傳插件,這是AJAX,以便頁面不會更改),請求的URL具有原始globalVar
值(當頁面首次加載時它有)。
為什么會這樣?
創建文件上載窗口小部件時,您將向其傳遞配置對象。 該對象具有許多屬性,其中包括url
。
在創建對象時評估屬性值(在您$(document).ready()
在$(document).ready()
創建文件上載小部件時)。 由於分配的值,對象不知道globalVar
變量:
"ajax_handler.php?globalVar=" + globalVar
求值為一個簡單的字符串(你沒有傳遞給globalVar
或類似的東西)。 如果你將一個函數分配給你引用globalVar
的url
屬性(我不知道文件上傳插件是否支持這個),那么你似乎期望的行為才會發生。
因此,即使您稍后更改globalVar
,文件上載小部件的url配置選項也將保持不變。 如果要更改它,則需要再次明確指定它。
如果您希望變量值從一個頁面持久存儲到另一個頁面,則必須將該值存儲在某個位置,然后從另一個頁面檢索它。 Javascript變量是頁面的本地變量,因此每次進入新頁面時都會清除整個javascript狀態。 存儲/檢索變量的選項有:
如果您不需要將它存儲在服務器上,前兩個更簡單。 服務器的優點是它甚至可以從其他計算機上獲得。 Cookie和LocalStorage僅在該特定計算機上可用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.