如何停止setTimeout中定义的方法执行
How to stop method execution defined in setTimeout
我在JS中面临一个问题,请帮助我解决这个问题。我有两个方法,它们一个接一个地同时执行。我必须在第二次点击图像后阻止他们。下面是我的JS代码
我在第一次点击图像后调用fadeIn(img1, img2, img3),然后一些动画将继续,一旦我点击第二次,整个动画(方法执行)应该停止。
var t1 = 0;
var t2 = 0;
function fadeIn(img1, img2, img3) {
$(imgIdForClick_1).addClass('animated pulse');
$('#cashBar1').addClass('animated pulse');
$('#cashBarDec1').addClass('animated pulse');
var t1 = setTimeout(function() {
fadeOut(img1, img2, img3);
if (clickCount_1 >= 2) {
alert("clicked 1");
return false;
}
}, 500);
//t1 = setTimeout(fadeOut, 500);
};
function fadeOut(img11, img22, img33) {
$(imgIdForClick_1).removeClass('animated pulse');
$('#cashBar1').removeClass('animated pulse');
$('#cashBarDec1').removeClass('animated pulse');
var t2 = setTimeout(function() {
fadeIn(img11, img22, img33);
if (clickCount_1 >= 2) {
alert("clicked 2");
return false;
}
}, 500);
//t2 = setTimeout(fadeIn, 500);
};
通过下面的代码,我在第一次点击
时调用这个代码片段imgId1 = $('#img1');
imgId2 = $('#cashBar1');
imgId3 = $('#cashBarDec1');
fadeIn(imgId1, imgId2, imgId3);
第二次点击后变量clickCount_1将为2
clearTimeout(t1);
clearTimeout(t2);
参见演示。点击图像停止动画。我添加了一个flag
,它将在函数调用时进行检查,如果值是true
,那么只有函数才会被调用。当点击图像时,flag
将被设置为false
,因此将不再调用该函数。
var animate = true;
function fadeIn() {
$('#pulseDiv').find('div#advisersDiv').delay(400).addClass("pulse");
if(animate == true)
{
setTimeout(fadeOut,1000);
}
};
function fadeOut() {
$('#pulseDiv').find('div#advisersDiv').delay(400).removeClass("pulse");
if(animate == true)
{
setTimeout(fadeIn,1000);
}
};
fadeIn();
$('#image').click(function(){
animate = false;
alert('now the animation will stop');
});
相关文章:
- 在使用Polymer'加载所有json文件后执行方法;s的核心ajax
- 递归使用 eval() 是检查程序执行的好方法吗?
- 如何防止jQueryonclick事件中的Ruby方法在页面刷新时执行
- 通过ajax从客户端调用C#方法来执行C#方法
- 有没有一种方法可以让内联事件处理程序在元素创建后立即执行
- 有没有一种方法可以通过只引用JavaScript来执行代码
- 如何使用get或post方法连接和执行ajax
- 从 ajax .post 方法执行 PHP 页面后显示它
- Javascript 方法执行顺序
- 同步 jquery 调用 - 如何等到 jquery 方法执行竞争
- 在javascript中,循环是在get方法执行之前执行的
- 当用户试图删除indexedDB数据库时,是否有方法执行函数
- 如何停止for循环执行,直到for循环内部的DWR方法执行完成
- setTimeout方法执行一次
- 在方法执行之间等待一段时间
- 当按ok在对话框服务器方法执行,如果按取消留在我的页面上.如何去做
- 如何停止setTimeout中定义的方法执行
- 是否有可能使用任何方法执行javascript代码
- 在jQuery中添加属性时,使用attr()方法,将属性作为键值对象传递,还是直接传递,哪种方法执行速度最快?
- Javascript方法执行和触发事件