函数中的Javascript clearInterval
我不熟悉Javascript或jQuery中的OOP,我正在尝试清除间隔并停止间隔内的任何方法,它似乎与我下面所做的不兼容函数中的Javascript clearInterval,javascript,jquery,oop,Javascript,Jquery,Oop,我不熟悉Javascript或jQuery中的OOP,我正在尝试清除间隔并停止间隔内的任何方法,它似乎与我下面所做的不兼容 function Timer() { var sec = $('.timer #second'); this.runTimer = function(_currentime) { var currentTimeing = parseInt($(_currentime).text()); this.timeInterval =
function Timer() {
var sec = $('.timer #second');
this.runTimer = function(_currentime) {
var currentTimeing = parseInt($(_currentime).text());
this.timeInterval = setInterval(function() {
$('.projects li span.second').text(currentTimeing++)
}, 1000);
$("#stop").click(function() {
// clear interval
clearInterval(this.timeInterval);
})
}
}
var play = new Timer();
$("#start").click(function(){
//console.log(this.runTimer())
play.runTimer('#second');
})
您在不同函数的上下文中使用了
此
,这就是它不能正常工作的原因。尝试:
function Timer() {
var sec = $('.timer #second');
this.runTimer = function(_currentime) {
var currentTimeing = parseInt($(_currentime).text()), that = this;
that.timeInterval = setInterval(function(){
$('.projects li span.second').text(currentTimeing ++)
}, 1000);
$("#stop").click(function(){
// clear interval
clearInterval(that.timeInterval);
})
}
}
var play = new Timer();
$("#start").click(function(){
//console.log(this.runTimer())
play.runTimer('#second');
})
我只是将引用保存到
that
变量中的correctthis
,以便以后可以使用它来清除间隔。您在不同函数的上下文中使用this
,这就是它不能正常工作的原因。尝试:
function Timer() {
var sec = $('.timer #second');
this.runTimer = function(_currentime) {
var currentTimeing = parseInt($(_currentime).text()), that = this;
that.timeInterval = setInterval(function(){
$('.projects li span.second').text(currentTimeing ++)
}, 1000);
$("#stop").click(function(){
// clear interval
clearInterval(that.timeInterval);
})
}
}
var play = new Timer();
$("#start").click(function(){
//console.log(this.runTimer())
play.runTimer('#second');
})
function Timer() {
var sec = $('.timer #second');
var timeinterval; // declare timeinterval variable here
this.runTimer = function(_currentime) {
var currentTimeing = parseInt($(_currentime).text());
timeInterval = setInterval(function(){
$('.projects li span.second').text(currentTimeing ++)
}, 1000);
$("#stop").click(function(){
// clear interval
clearInterval(timeInterval);
})
}
}
var play = new Timer();
$("#start").click(function(){
//console.log(this.runTimer())
play.runTimer('#second');
})
我只是将引用保存到
that
变量中的correctthis
,这样我以后就可以用它来清除interval了。不需要that。timeInterval
我只需要将它设为一个正常的var。实际上,有了这个代码,根本就没有必要,但是,也许作者有一些进一步的计划来开发这段代码:)根本不需要那个。时间间隔,我只想把它变成一个普通的变量。事实上,有了这段代码,根本没有必要,但也许作者有一些进一步的计划来开发这段代码:)
function Timer() {
var sec = $('.timer #second');
var timeinterval; // declare timeinterval variable here
this.runTimer = function(_currentime) {
var currentTimeing = parseInt($(_currentime).text());
timeInterval = setInterval(function(){
$('.projects li span.second').text(currentTimeing ++)
}, 1000);
$("#stop").click(function(){
// clear interval
clearInterval(timeInterval);
})
}
}
var play = new Timer();
$("#start").click(function(){
//console.log(this.runTimer())
play.runTimer('#second');
})