jquery函数未执行完就执行下一次了,怎么解决?

function a() {
}
$("#b").click(function(e){
a()
});

多次点击#b,a方法会被同时多次执行,怎么让a方法执行完毕之后才能再执行?

第1个回答  2012-07-08
您好!我给您简单改了一下代码,您自己可以运行多次点击#b试一下!
$("#b").click(function(e){
a();
$("body").append("22222<br />");
});

function a() {
$("body").append("111111");
$("body").append("333333");
$("body").append("444444");
$("body").append("555555<br />");
}
<input type="button" id="b" value="点击">

这样子不管您的点击多少次#b,都是a方法先执行的,无论您的手有多快!希望对您有帮助!本回答被网友采纳
第2个回答  推荐于2016-11-22
那你就加一个setTimeou("aa",1000);让它等待1秒钟再执行
第3个回答  2012-07-10
用定时器可以解决
var flag =false;
function a() {
flag=true;
}
$("#b").click(function(e){
if(flag){
a();
}else{
//每隔多少秒判断一下flag 然后做a的事情

}
});
第4个回答  2012-07-08
block=false;
function a(){
block=true;
//你的代码;
block=false;
}
$("#b").click(function(e){
if(!block)
a();
});追问

这样方式,如果我快速点击#b按钮,a()还是会被多次执行的。
就是说当a()方法执行到block=false;这一行时,存在一时刻#b被多次点击,a()方法还是被多次执行了。

追答

没明白你要说啥~~~

如何控制jquery中的for循环当当前循环执行完后,在执行下一次
三个方法 一 加定时器 给一个全局变量定时访问 如果变量变成可执行定时间器结束 二 加一个延时执行 得自己评估时间 三 加回调函数 执行完了回调继续执行下面的

JS问题JQUERY问题如何让一段函数执行完毕后再执行另一段函数
1、如果f1中没有异步操作,像是没有setTimeout,直接f1()f2()就可以,可以按照顺序执行 2、如果f1中有像setTimeout的异步操作,(额,照理说setTimeout也不算是异步操作,反正就是有时间延迟的),使用1中的方式,在f1没有执行完就会执行f2中的代码,这时候就需要有一个判断。根据实际情况吧,我...

JQuery事件在其引发的函数执行过程中又被多次触发,导致函数执行完后事...
设置一个全局变量,在滚动前设置一个特定值,在滚动完成后改变成另一个值。那么在另一个滚动程序需要执行时候先判断是否正在滚动,是就取消本次的滚动操作 var mmmmm=0;(document).ready(function(){ ("button").click(function(){ if(mmmmm<1){ mmmmm=1 ("div").animate({ left:'+=200px'...

新手提问 jquery 函数执行顺序的问题
你好!!当以回调的形式应用动画方式时,动画是按照回调顺序发生的。可以写个函数,来实现这个功能···(document).ready(function () { \/\/obj为执行动画的元素,opt为执行的动画,time为时间 function yourAnimate(obj,opt,time){ obj.animate(opt,time || "normal",function(){ \/\/在...

jquery问题,$.ajax在for循环里,如何控制完成success函数后再执行下一...
你可以把ajax写成一个函数~然后返回成功后就调用一次这个函数~(就是自己调用自己),这样就可以读出一个显示一个了~

JS如何等ajax执行完毕后再继续执行后续函数
Jquery等待ajax执行完毕再继续执行下面代码的效果,具体代码如下,其实就是将 jquery ajax 函数的 async 参数设置为 false 即可,该参数默认为 true

请教一个jquery运行顺序的问题
ajax是异步操作,也就是说ajax里面的语句即使没有执行完,也会运行ajax外面的语句.至于你说的数据保存,其实也是因为ajax异步的原因.办法:重新整理你的逻辑,把alert('运行到这里');放在ajax回调函数里.把ajax改成同步. $.ajax({ type: 'post', async: false });async: 默认值: true。默认是异步...

jquery暂停几秒钟再执行的函数怎么写
1、首先新建一个html文件,命名为test.html。2、在test.html文件内,使用span标签创建一行文字,用于下面延时设置其颜色。3、在test.html文件内,给span标签添加一个id属性,用于下面获得它的对象。4、在js标签内,通过ready()方法,在页面加载成功后,执行function方法。5、在function方法内,使用setTime...

jquery的函数到底是怎么执行的啊?
比如函数定义 function aa(){}对于这个函数来说aa是函数名,函数名+()就是执行函数,有了这个基础,下面理解起来就容易了 $("#subb").click(aa());\/\/这里是aa(),需要执行函数,则相当于先执行aa(),aa的返回值再作为参数传入click中。 $("#subb").click(aa);\/\/这里aa是函数名,不具备...

js问题 jquery问题 jquery的animate重复执行应该怎么解决
\/*可用stop()函数立即停止动画,再去执行当前时间产生的效果。这样却产生了一个问题:比如我的mouseover时间刚执行了500毫秒,但是我马上执行 mouseout的实现效果了,用了1000毫秒去完成本来500秒能完成的事件效果,这个在视觉上和效益上都有点问题,因此本人想出了一个小方法,有点戳,莫见笑:定义一个...

相似回答