Ajax设置全局变量,但外部值消失
Ajax sets global vars, but outside the value disappear
对象窗口上的设置,只获取"固定的";如果我在警报下调用函数[ctrUpadateCount],如果我直接调用,它将不起作用。知道为什么吗?我在另一个项目上也遇到了同样的问题。并且必须应用一个在这里无法应用的解决方案。我试着解释下面的代码。。。抱歉英语不好。
function ctrUpdateCount(idCtrForm)
{
$.ajaxSetup({ assync: false});
tableName= 'clients';
p_comando="select count(*) total from "+tableName;
$.post("execute.php", {comando : p_comando}, function(json){
v_total=json[1].total ; // <= this retuns 3
window['ctrBuffer_'+idCtrForm].count=v_total;
alert("count inside = "+ window['ctrBuffer_'+idCtrForm].count );//this alerts 3
},'json');
}
jQuery.fn.extend( { ctrLoad: function()
{
if( $(this).get(0).tagName =='FORM'){
idCtrForm=$(this).attr('id');
alert("direct count ="+ctrUpdateCount(idCtrForm) ); // this will alert 3
// and so the next alert
//teste=ctrUpdateCount(idCtrForm); // but if I use this,
//the next alert will show "undefined"
alert("count after = "+ window['ctrBuffer_'+idCtrForm].count );
}
}
})
您的"ctrUpdateCount"函数正在使用$.post()
,它是异步的。不可能让函数返回由异步操作的结果确定的值;它本质上是荒谬的。
我真的不知道你想做什么,但基本上你必须对$.post()
的回调函数内部的"POST"操作结果做你需要做的事情。
相关文章:
- 调整窗口大小时,可拖动的对象会出现在容器外部
- HTML表单提交时未执行外部函数
- 通过在Dojo mobile ViewController.openExternalView中动态更改打开同一外部视图的
- 使用html中的外部javascript进行数据验证
- 将变量传递给外部Javascript
- 使用javascript在Flash中加载外部图像
- facebook”;添加评论“;popup获胜'不要消失
- Firebase2(Firebase.google.com)推送通知-从外部管理
- 如何更改reactjs中外部/独立组件的状态或属性
- 为什么js事件消失了
- JS文件的路径正在消失
- 如何从外部页面激活非默认引导选项卡
- 如何在运行时在angular 2中加载外部js脚本
- JavaScript-在手机上不工作的情况下,在外部单击时隐藏元素
- 单击元素外部时进行JQuery
- 我的外部js文件无法加载
- 拆下外部分配器
- I'我设计了一个下拉菜单,onclick会出现,而on blur会消失
- 什么'在webpack外部设置中,reactDom和reactDom不同
- Ajax设置全局变量,但外部值消失