如何停止clone()?

时间:2015-04-07 15:51:23

标签: jquery

我无法在互联网上找到答案。我有一个克隆元素的var。此varsetInterval函数上传递,该函数每1秒重复一次克隆过程。接下来,我尝试通过单击文档来停止此过程。

这是一个小提琴:http://jsfiddle.net/7mcno43m/

var interval = setInterval(function(){
    var clone = $('div').clone().first().appendTo('body')
}, 1000);

$(document).click(function(){
    clone = false 
})

我知道我可以使用clearInterval来做到这一点,但我想找到另一种方式。

1 个答案:

答案 0 :(得分:3)

您可以设置一个布尔标志变量,然后该克隆基于该变量。 clone也应设置在两个代码块的范围内,以便可以访问它。试试这个:

var allowClone = true;
var clone;
var interval = setInterval(function(){
    if (allowClone)
       clone = $('div').clone().first().appendTo('body');
}, 1000);

$(document).click(function(){
    clone = null; // empty it if it was set (optional)
    allowClone = false;
})

Updated fiddle

我建议您使用clearInterval(),否则您只是在浪费时间并降低性能。