var cnt1 = 0;
function initOctoView(){
var newcnt1 = printAdsBox1(cnt1, imgPerBox1); // first time on first load
var totalBoxes8 = setInterval(function() {
newcnt1 = printAdsBox1(newcnt1, imgPerBox1); // all 5 sec
}, 5000);
}
此函数由此调用:
if($('.octoView').length > 0){
initOctoView();
}
到目前为止工作正常。
后来我有:
$(document).on('click', 'a.windowXL', function () {
window.clearInterval(totalBoxes8);
}
但是这会返回未定义totalBoxes8。 我的错是什么?请指教!
答案 0 :(得分:4)
使用var inside函数声明totalBoxes8 - totalBoxes8只能在此函数中访问本地变量。你可以把它变成全球性的:
var cnt1 = 0;
var totalBoxes8;
function initOctoView(){
var newcnt1 = printAdsBox1(cnt1, imgPerBox1); // first time on first load
totalBoxes8 = setInterval(function() {
newcnt1 = printAdsBox1(newcnt1, imgPerBox1); // all 5 sec
}, 5000);
}
答案 1 :(得分:0)
试试这个;
$(function(){
var cnt1 = 0, totalBoxes8 ;
function initOctoView(){
var newcnt1 = printAdsBox1(cnt1, imgPerBox1); // first time on first load
totalBoxes8 = setInterval(function() {
newcnt1 = printAdsBox1(newcnt1, imgPerBox1); // all 5 sec
}, 5000);
}
$(document).on('click', 'a.windowXL', function () {
window.clearInterval(totalBoxes8);
}
});
答案 2 :(得分:0)
totalBoxes8
为undefined
,因为它在函数initCotoView()
的范围内声明为 local ,因此 global < em>范围
您可以通过将其显式附加到全局window
对象来声明 in 函数中的全局。类似的东西:
function foo() {
window.myVar = 1; // declares a global
}
foo(); // call the function to actually make the declaration
console.log(window.myVar); // the variable is accessible globally