当前位置:编程学习 > JAVA >>

问一个JS的问题!!急

   我先使用了一个ajax请求,然后请求成功以后走success那个函数,但是走的过程中我点击了别处的一个按钮,这时候我想让这个success函数停止不往下继续走,应该怎么实现??? --------------------编程问答-------------------- 看下这篇文章呢,

http://luchuan.iteye.com/blog/1064294 --------------------编程问答-------------------- 个人理解:js函数只有在执行完毕或遇到return后才会停止,外部代码无法停止js函数的运行! --------------------编程问答--------------------
引用 1 楼 jimmy609 的回复:
看下这篇文章呢,

http://luchuan.iteye.com/blog/1064294

我的意思是有没有什么办法,监听到那个按钮此时被点击了,然后在ajax里面写一个if 如果它被点击了,就return false,跳出那个success函数~,但是我找不到监听按钮是否被点击的函数哎 --------------------编程问答--------------------
引用 2 楼 duanwu2330323 的回复:
个人理解:js函数只有在执行完毕或遇到return后才会停止,外部代码无法停止js函数的运行!

我现在遇到一个很棘手的BUG,就是一个意见咨询框,提交意见成功后,在success函数里用了一个setTimeout,5秒后,这个框自己关了。。。。但是测试给我测出一BUG,想半天没想出来,提交成功后,她没等5秒,就X掉了,然后再点打开,但是那个5秒函数还在走,如果她的操作在5秒之内,那个框还会关掉。。。 --------------------编程问答-------------------- 写个全局变量,按钮被点击的话就修改变量的值,在success里面判断这个变量的值是否改变,试下可行不? --------------------编程问答-------------------- 同步
调用ajax之前加上
$.ajaxSettings.async = false; --------------------编程问答-------------------- http://www.myexception.cn/javascript/421884.html
--------------------编程问答--------------------
引用 6 楼 u010684923 的回复:
同步
调用ajax之前加上
$.ajaxSettings.async = false;

这招不管用。。。。 --------------------编程问答-------------------- 那你在success函数中要判断该按钮是否被点击,如果点击就return好了 --------------------编程问答--------------------
引用 9 楼 u010684923 的回复:
那你在success函数中要判断该按钮是否被点击,如果点击就return好了

我现在就卡在如何判断它是否被点击了,能否再说细点 --------------------编程问答-------------------- 设置一个全局变量 例如var isLock = 1; 当点击一次按钮时,这个值加一
当你调用ajax请求的时候用一个变量获取这个值:
var ajaxStartLockStatus = isLock ;

当执行success方法时,判断 ajaxStartLockStatus  与 isLock 是否相等 ,如果不想等 直接return
--------------------编程问答-------------------- 我认为用个全局变量比较好 true  or false --------------------编程问答-------------------- $.ajax({
url:"treeNodesList.action",
type:"post",
data:"",
dataType:"json",
success:function(data)
{
                   //在此处调用按钮function,如:currentNodeId();


                 }
     });
--------------------编程问答--------------------
引用 3 楼 jihaixiao8 的回复:
Quote: 引用 1 楼 jimmy609 的回复:

看下这篇文章呢,

http://luchuan.iteye.com/blog/1064294

我的意思是有没有什么办法,监听到那个按钮此时被点击了,然后在ajax里面写一个if 如果它被点击了,就return false,跳出那个success函数~,但是我找不到监听按钮是否被点击的函数哎

可以定义一个js全局变量isContinue,默认初始化为true,监听按钮的点击,使用onclick事件,onclick事件调用自己定义的方法,如clickevent(),在方法内部将全局变量isContinue设置为false,在success函数中判断,如果isContinue为false,直接return。希望能帮助楼主解决问题。 --------------------编程问答-------------------- 加个全局变量。比如var stop = false,你的按钮事件修改这个值为true
在success方法里先判断stop的值,如果位false继续走,true就停止。return --------------------编程问答-------------------- 雖然也是小白,但是同意11樓的說法 --------------------编程问答--------------------
引用 10 楼 jihaixiao8 的回复:
Quote: 引用 9 楼 u010684923 的回复:

那你在success函数中要判断该按钮是否被点击,如果点击就return好了

我现在就卡在如何判断它是否被点击了,能否再说细点

var flag = false;//定义全局的标识变量,给定初始值false
$("#btn").click(function(){
//按钮被点了后,就给flag设成true
flag = true;
});

if(flag){
//判断完后将flag设回false
flag = false;
}
--------------------编程问答-------------------- 可以让他点击这个按钮以后,一直空循环不 --------------------编程问答-------------------- timer=setTimeout()   另一个按钮点击的时候把timer清空。这样行不? --------------------编程问答-------------------- 你把问题复杂化了,避免不了新问题的出现。最好就是换一下思路,比如清空定时器 --------------------编程问答-------------------- ajax默认是异步,你可以设置成同步的方式
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,