jquery中的$.post()中的回调函数中能设置外界参数的值吗?
答案:4 悬赏:70 手机版
解决时间 2021-03-24 03:51
- 提问者网友:山高云阔
- 2021-03-23 19:00
jquery中的$.post()中的回调函数中能设置外界参数的值吗?
最佳答案
- 五星知识达人网友:荒野風
- 2021-03-23 19:42
你在页面有两个alert,,应该会出现两次才对。第一次应该是false,第二次应该由data来决定。因为你使用的是AJAX,默认是异步的,因此当代码执行到$.post()时,并不会等它结果,而是继续向下执行,到了第二个alert的位置,这时t应该还是最初你设定的var t = false;所以会显示false.
还有,alert()会中断正在执行的代码。不太方便测试某变量的值,你可以将此变量的值写入一个窗口内,比如将alert(t);改为$("title").html(t);//将t的值写进页面的title中,可以直接在浏览器看到。追问估计原因是这样的,回调函数中值确定已经改变,我试着改成同步试下
还有,alert()会中断正在执行的代码。不太方便测试某变量的值,你可以将此变量的值写入一个窗口内,比如将alert(t);改为$("title").html(t);//将t的值写进页面的title中,可以直接在浏览器看到。追问估计原因是这样的,回调函数中值确定已经改变,我试着改成同步试下
全部回答
- 1楼网友:神也偏爱
- 2021-03-23 20:53
骚年 研究一下闭包哇
- 2楼网友:野慌
- 2021-03-23 19:54
因为你这个是匿名函数的原因吧。
你试着把那段代码提出来作为一个函数试试。
同时把var t提出来到 $(function...外面。追问提取函数为function f(){},然后在action标签的onsubmit="return f();"效果还是一样的,没用啊追答不是,是把下面这个提取出去
function(data){
//传回来的值是true或false
if(data=="true"){
t = true;//修改外界t的值
alert(t);//此处如果程序能进来,t=true
}else{
t = false;//修改外界t的值
}
}追问回调函数无法提取出来的,那是$.post()的固定格式追答试试这么定义t
this.t = false;
你试着把那段代码提出来作为一个函数试试。
同时把var t提出来到 $(function...外面。追问提取函数为function f(){},然后在action标签的onsubmit="return f();"效果还是一样的,没用啊追答不是,是把下面这个提取出去
function(data){
//传回来的值是true或false
if(data=="true"){
t = true;//修改外界t的值
alert(t);//此处如果程序能进来,t=true
}else{
t = false;//修改外界t的值
}
}追问回调函数无法提取出来的,那是$.post()的固定格式追答试试这么定义t
this.t = false;
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯