从一个函数传递到另一个函数的变量在使用jQuery的.post之后变得未定义
Variable passed from one function to another become undefined after .post with jQuery
我有一个函数成功地将值为2
的data_user_id
传递到function getOptionsList(fieldname_validation,data_user_id)
中。但是,我认为.post-statument的异步特性以某种方式去掉了值,所以当我在getOptionsList
函数中执行.post时,它下一个传递的函数中的data_user_id将未定义。像这样:
function getOptionsList(fieldname_validation,data_user_id){
$.post('Controller.php',
{
action: 'get_options_list',
user: userJson
},
function(data, textStatus, fieldname_validation,data_user_id) {
data_user_id=data_user_id;
showOptionsList(data, fieldname_validation,data_user_id);
$('#indicator').hide();
},
"json"
);
}
function showOptionsList(jsonData, fieldname_validation,data_user_id){
alert('showOptionsList ran!');
alert(data_user_id);//Here the same variable will alert as undefined.
}
如何解决此问题?
您已经将data_user_id
声明为内部函数的参数,因此它与外部方法的参数不同。由于$.post
方法只会为回调提供3个参数,所以第四个参数将始终是undefined
(第三个参数将是jqXhr
对象,我认为这不是您所期望的)。
解决方案是删除这个参数(可能还有fieldname_validation
):
function getOptionsList(fieldname_validation,data_user_id){
$.post('Controller.php',
{
action: 'get_options_list',
user: userJson
},
function(data, textStatus) {
showOptionsList(data, fieldname_validation, data_user_id);
$('#indicator').hide();
},
"json"
);
}
相关文章:
- 执行ajax成功函数-jQUERY
- 函数jquery.html()不提供数据属性集值
- 将变量放入ajax函数JQuery
- 函数jquery的未定义返回
- 如何在嵌套函数jquery上保持变量的值不变
- 用我的函数jquery给出数据/参数
- Firefox在调用函数(jquery)时冻结
- 在传递节时触发一个函数 - jquery
- 循环执行数组函数jQuery
- 在函数中调用另一个函数JQuery
- 对象不是函数-Jquery/JavaScript
- TypeError:对象不是函数-jquery
- 获取函数jQuery设置的属性
- 从函数jquery获取更新的变量值
- 切换而不是悬停函数jQuery
- 函数jQuery.animation()运行了两次行,但不起作用
- 使用函数 jQuery 获取变量
- 自执行函数 jquery 与 JavaScript 的区别
- 从回调函数 -JQuery 获取返回值
- 一个接一个地执行函数 JQUERY