Javascript 设置间隔可以';在Firefox中看不到函数
我对JavaScript非常陌生,所以如果这是一个愚蠢的问题,请原谅我。我正在使用下面的代码来获得一个图像以滑到屏幕上,另外两个图像将一个接一个地出现。这适用于Chrome和IE 7-9。不幸的是,在Firefox上,我收到一个错误,上面写着: 未定义移动[mover=setInterval(移动,1000);] 我的代码:Javascript 设置间隔可以';在Firefox中看不到函数,javascript,firefox,setinterval,Javascript,Firefox,Setinterval,我对JavaScript非常陌生,所以如果这是一个愚蠢的问题,请原谅我。我正在使用下面的代码来获得一个图像以滑到屏幕上,另外两个图像将一个接一个地出现。这适用于Chrome和IE 7-9。不幸的是,在Firefox上,我收到一个错误,上面写着: 未定义移动[mover=setInterval(移动,1000);] 我的代码: //define variables var mover = 0 var bubble1move = 0 var bubble2move = 0 if(mover !=
//define variables
var mover = 0
var bubble1move = 0
var bubble2move = 0
if(mover != 0)
{//interval is finished
function move ()
{
console.log("moving")
clearInterval(mover)
var moving_img = document.getElementById("i_sliding_image")
var left = 0
function frame()
{
left -= 2 // update parameters
moving_img.style.left = left + 'px'// show frame
if (left == -274) // check finish condition
{
clearInterval(id)
bubble1move = setInterval(function() {bubble1()}, 2000);
}
}
var id = setInterval(frame, 10) // draw every 10ms
}
}
if(bubble1move != 0)
{//interval is finished
function bubble1()
{
clearInterval(bubble1move);
document.getElementById("img-bubble1").style.zIndex = "1";
bubble2move = setInterval(function() {bubble2()}, 2000);
}
}
if(bubble2move != 0)
{//interval is finished
function bubble2()
{
clearInterval(bubble2move)
var vBubble2 = document.getElementById("img-bubble2").style
vBubble2.zIndex = "1";
}
}
window.onload = function initialiser()
{
mover = setInterval(move, 1000);//initial time to animation
}
所有getElementById都将获得包含图像的div标记
谢谢您的时间。看起来您正在将js开头的mover变量初始化为0,而您的if语句仅声明函数if
mover!=0
。初始化mover=1
或将函数置于if语句之外(推荐)。您只是试图在它存在之前调用move()
看起来您是在js的开头将mover变量初始化为0,而您的if语句仅声明函数ifmover!=0
。初始化mover=1
或将函数置于if语句之外(推荐)。您只是试图在函数存在之前调用move()
将函数移到if
之外。如果,则没有理由将其置于范围内。它在Firefox上不起作用,因为Firefox解释函数的方式(与其他浏览器不同)
有关更多信息,请参阅
感谢@freakish提供的链接。如果
,请将您的函数移出。如果
,则没有理由将其置于范围内。它在Firefox上不起作用,因为Firefox解释函数的方式(与其他浏览器不同)
有关更多信息,请参阅
感谢@freakish的链接。你对移动的定义应该在if语句中吗?尝试在别处定义函数,并从if内部调用它。您的语句终止符都在哪里<代码>代码>谢谢agryson,这就是问题所在,您对移动的定义是否应该包含在if语句中?尝试在别处定义函数,并从if内部调用它。您的语句终止符都在哪里<代码>代码>谢谢agryson,这就是问题所在。这是不正确的:它在FireFox上不起作用,因为FireFox对函数
语句的解释与其他浏览器有点不同(在Chrome下,无论您定义函数在哪里,它都会始终可见)。阅读本文了解更多细节:它解决了问题,所以我不会给-1,但我也不会给+1。@freakish,谢谢-添加到答案中。但解决方案仍然是一样的。这是不正确的:它在FireFox上不起作用,因为FireFox对函数
语句的解释与其他浏览器略有不同(在Chrome下,无论您定义函数在哪里,它总是可见的)。阅读本文了解更多细节:它解决了问题,所以我不会给-1,但我也不会给+1。@freakish,谢谢-添加到答案中。但解决方案仍然是一样的。