Jquery 功能重复的重置计数器
我有一个函数,它检查某个元素是否有属性,如果没有找到该属性,该函数将再次运行。直到找到该属性或达到允许该函数调用自身的最大次数为止Jquery 功能重复的重置计数器,jquery,Jquery,我有一个函数,它检查某个元素是否有属性,如果没有找到该属性,该函数将再次运行。直到找到该属性或达到允许该函数调用自身的最大次数为止 var cnt = 0; function myFunction() { if (!$('.myEm').is('[style]') && cnt < 10) { setTimeout(function () { myFunction(); cnt
var cnt = 0;
function myFunction() {
if (!$('.myEm').is('[style]') && cnt < 10) {
setTimeout(function () {
myFunction();
cnt++;
}, 3000);
}
}
myFunction();
我正在努力重置此计数器值。我将一个放在一起,以显示我试图完成的任务。您需要将计时器的引用存储在一个变量中,然后在更改
选择元素时调用clearTimeout()
。在将cnt
重置回0
之前,还应删除var
语句,否则将更改其范围。试试这个:
$(document).on('change', '#myDropDown', function () {
clearTimeout(timer);
cnt = 0;
myFunction();
});
循环将继续运行,因此您不需要再次调用它,只需使用jQuery change函数:
$('#myDropDown').change(function () {
cnt = 0;
});
编辑:刚刚意识到计时器在10时停止,所以更新了JSFIDLE以在达到10时重新启动计时器循环
请参见此处更新的JSFIDLE:您正在使用全局变量的更改处理程序中将cnt定义为本地。只需删除更改处理程序中的var
$('#myDropDown').change(function () {
cnt = 0;
});