Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 设置间隔可以';在Firefox中看不到函数_Javascript_Firefox_Setinterval - Fatal编程技术网

Javascript 设置间隔可以';在Firefox中看不到函数

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 !=

我对JavaScript非常陌生,所以如果这是一个愚蠢的问题,请原谅我。我正在使用下面的代码来获得一个图像以滑到屏幕上,另外两个图像将一个接一个地出现。这适用于Chrome和IE 7-9。不幸的是,在Firefox上,我收到一个错误,上面写着:

未定义移动[mover=setInterval(移动,1000);]

我的代码:

//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语句仅声明函数if
mover!=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,谢谢-添加到答案中。但解决方案仍然是一样的。