<span id="ccc">10</span> <span id="start">start</span> <span id="stop">stop</span>
$('#start').click(function(){
var c = $('#ccc').text();
var inter = setInterval(function() {
c--;
$('#ccc').text(c);
}, 1000);
});
$('#stop').click(function(){
clearInterval(inter);
});
我必须如何重写才能正确使用STOP?
答案 0 :(得分:5)
inter
需要在两个函数的范围内。用闭包包装这两个函数,以避免使用新变量污染全局命名空间。
(function ($) {
var inter;
$('#start').click(function(){
var c;
c = parseInt($('#ccc').text()); //make sure you're getting a numeric value
//don't forget to clear any existing interval before setting a new one:
if (inter) {
clearInterval(inter);
}
inter = setInterval(function() {
c--;
$('#ccc').text(c);
}, 1000);
});
$('#stop').click(function() {
clearInterval(inter);
});
}(jQuery));
答案 1 :(得分:3)
inter
是一个局部变量
它在你的回调之外不存在。
您需要使用全局变量。
答案 2 :(得分:2)
var inter = 0; $('#start').click(function(){ var c = $('#ccc').text(); inter = setInterval(function() { c--; $('#ccc').text(c); }, 1000); }); $('#stop').click(function(){ clearInterval(inter); });