停止眨眼事件

时间:2011-12-09 16:02:54

标签: javascript jquery setinterval

我需要的是:

单击按钮,使闪烁事件停止。

这就是我想要做的事情:

var blink = function(){
    $('#blinker').toggle();
};
setInterval(blink, 800);

$("#stopBlink").click(function(){
   clearInterval(blink); 
});

并且dos不起作用,我缺少什么?

Working example

谢谢!

5 个答案:

答案 0 :(得分:2)

您需要做的就是:

blink_flag = setInterval(blink, 800);

$("#stopBlink").click(function(){
   clearInterval(blink_flag); 
});

我建议添加:

$('#blinker').show();

clearInterval之后。

答案 1 :(得分:1)

我认为你以错误的方式使用clearInterval()clearInterval()的参数是由setInterval()创建的ID,您将放置setInterval()使用的函数。

var blink = function(){
    $('#blinker').toggle();
};
var glbTimer = setInterval(blink, 800); //declare an ID created by `setInterval()`

$("#stopBlink").click(function(){
   clearInterval(glbTimer); //clear the interval of the ID.
});

查看此link了解详情。

也许你可以试试这个demo

答案 2 :(得分:1)

您正尝试在此功能上使用clearInterval。这不起作用,因为clearInterval将区间的唯一ID作为参数。此参数将由setInterval函数返回。如果您将唯一ID存储在变量中并将其传递给clearInterval,它将正常工作。试试这个:

var blink = function(){
    $('#blinker').toggle();
};
var blinkID = setInterval(blink, 800);

$("#stopBlink").click(function(){
   clearInterval(blinkID); 
});

MDN

Demo

答案 3 :(得分:1)

您正在尝试停止闪烁切换功能,而您实际上应该在变量中保存间隔并在该变量上调用clearInterval,因为 clearInterval 需要 setInterval的实例 object as parameter:https://developer.mozilla.org/en/DOM/window.clearTimeout

http://jsfiddle.net/HTRZk/22/

var blink = setInterval(function(){
    $('#blinker').toggle()}
, 800);

$("#stopBlink").click(function(){
   clearInterval(blink); 
});

此外,您需要确保在文本隐藏时停止闪烁事件时再次显示该项目。在.click事件中添加:

$('#blinker').show();

答案 4 :(得分:0)

var blink = function(){
    $('#blinker').toggle();
};
var bl = setInterval(blink, 800);

$("#stopBlink").click(function(){
   clearInterval(bl); 
});