如何在另一功能中停止功能?如何在另一功能中停止功能
例如:
var \t snow = function(){
var interval = setInterval(function(){
alert('letItSnow')
}, 1000);
};
snow();
clearInterval(snow.interval) - 異常
如何在另一功能中停止功能?如何在另一功能中停止功能
例如:
var \t snow = function(){
var interval = setInterval(function(){
alert('letItSnow')
}, 1000);
};
snow();
clearInterval(snow.interval) - 異常
在JavaScript中,訪問範圍通過函數聲明有限的,所以你的本地聲明的變量不會被外界訪問,因此你必須返回,或將其設置爲一個全局變量(父範圍變量可用)
你需要做小幅調整,以你的函數,像這樣做:
var snow = function(){
return setInterval(function(){
alert('letItSnow');
}, 1000);
};
var interval = snow();
//on some event -- clearInterval(interval)
可以阿爾斯Ø使setTimeout
和返回ID屬性的function
這將適用於所有的情況下的即
var snowClass = function(){
this.init = function(msg){
this.interval = setInterval(function(){alert(msg)},1000);
}
}
var snowObj = new snowClass();
snowObj.init('Let it snow');
//on some event -- clearInterval(snowObj.interval)
試試這個在您的代碼
var timeout1 = {};
var timeout2 = {};
function function1(){
//codes
if(timeout2){
clearTimeout(timeout2);
}
timeout1 = setTimeout("function1()",5000);
}
function function2(){
//codes
if(timeout1){
clearTimeout(timeout1);
}
timeout2 = setTimeout("function2()",5000);
}
你指的是snow.interval
,它假設是snow
對象的屬性。但在你的代碼interval
只是局部變量。相反,你可能要在全球範圍內定義interval
所以這將是全球訪問http://www.w3schools.com/js/js_scope.asp
var interval, snow = function(){
interval = setInterval(function(){
console.log('letItSnow')
}, 1000);
};
snow();
clearInterval(interval);
如果我理解正確的問題,你要停止snow
功能之外的時間間隔。
您可以在snow
函數之外聲明interval
變量,以便在snow
函數之外使用它(以清除間隔)。
var interval;
var snow = function(){
interval = setInterval(
function(){
alert('letItSnow')
},
1000
);
};
snow();
clearInterval(interval);
你'clearInterval'因爲在函數中的變量不是函數對象的屬性拋出異常。 – doug65536