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

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

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

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


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

最佳答案

您可以设置布尔值标志变量,然后克隆将基于该变量。还应该在两个代码块的范围内设置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(),否则您将浪费时间并降低性能。

关于jquery - 如何停止clone()?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29495773/

10-15 07:47