javascript - 在事件上更新 jQuery 变量

标签 javascript jquery

我有 jquery var location_dir 设置并在 var 中使用,如下所示:

var location_dir = 'home/user';

var settings = {
   formData: {
       location: location_dir
   }
}

$("#mulitplefileuploader").uploadFile(settings);

location_dir 使用如下点击事件进行更新:

$(document).on('click', 'a.folder', function () {
   location_dir = $(this).data("location");
});

所以我的最终脚本是这样的:

var location_dir = 'home/user';

$(document).on('click', 'a.folder', function () {
   location_dir = $(this).data("location");
});

var settings = {
   formData: {
       location: location_dir
   }
}

$("#mulitplefileuploader").uploadFile(settings);

问题是 location_dir 没有根据这些点击事件更新,而是保持初始值。我是否需要将 var settings = { ... 包装在函数或其他东西中?

最佳答案

那个变量不是问题,是你的 settings 变量,更新它!

$(document).on('click', 'a.folder', function () {
    settings.formData.location = $(this).data("location");
});

您只是获取该变量的值,它不是引用。您必须更新 settings,因为它是您在 uploadFile 函数中实际使用的内容。

关于javascript - 在事件上更新 jQuery 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20843849/

相关文章:

javascript - 带有 javascript api 的 Flash 音频 mp3 播放器需要用于播放在线 radio

javascript - 首次访问时出现 Cookie NaN 错误

javascript - RadioButton 不会设置选中的 javascript

javascript - 使用async/await进行同步代码执行时, "sync-ify"第三方代码怎么办?

javascript - react native : Calling setState in FlatList much slower than setState in ScrollView

javascript - 将每个循环变量传递给 Javascript 函数

Javascript 无法处理多行

jquery - iframe动态高度跨域使用jquery.ba-postmessage

jQuery - $(document).ready 函数中的函数

javascript - 如何使用 SlickGrid 添加/删除行