jquery setInterval ie9不会触发

时间:2012-11-14 12:46:25

标签: jquery internet-explorer internet-explorer-9 setinterval

就像标题所说的那样。 适用于chrome和firefox,只是IE9给了我这个问题。 当我直接定位框架时它确实有效(example.com/#target) 我不认为这是一个没有被加载的对象的问题

    setInterval("myFunc()",1);      

    function myFunc(){   
    if ($(shop).is(":target")) {
        $('#nav').removeClass('nav').addClass('navopen');
        $('#content').removeClass('content').addClass('contenthide');
        $('.bgopen').removeClass('bgopen');
        $('#shpbg').addClass('bgopen'); 
    } else if ($(about).is(":target")) {
        $('#nav').removeClass('nav').addClass('navopen');
        $('#content').removeClass('content').addClass('contenthide');
        $('.bgopen').removeClass('bgopen');
        $('#abtbg').addClass('bgopen'); 
    } else if ($(contact).is(":target")) {
        $('#nav').removeClass('nav').addClass('navopen');
        $('#content').removeClass('content').addClass('contenthide');
        $('.bgopen').removeClass('bgopen');
        $('#cntbg').addClass('bgopen'); 
    } else if ($(blog).is(":target")) {
        $('#nav').removeClass('nav').addClass('navopen');
        $('#content').removeClass('content').addClass('contenthide');
        $('.bgopen').removeClass('bgopen');
        $('#extbg').addClass('bgopen'); 
    } else if ($(collective).is(":target")) {
        $('#nav').removeClass('nav').addClass('navopen');
        $('#content').removeClass('content').addClass('contenthide');
        $('.bgopen').removeClass('bgopen');
        $('#colbg').addClass('bgopen'); 
    } else if ($(main).is(":target")) {
        $('#nav').removeClass('navopen').addClass('nav');
        $('#content').removeClass('contenthide').addClass('content');
        $('.bgopen').removeClass('bgopen'); 
        $('#bgmain').addClass('bgopen');
    } else if ($(pmt).is(":target")) {
        $('#nav').removeClass('nav').addClass('navopen');
        $('#content').removeClass('content').addClass('contenthide');
        $('.bgopen').removeClass('bgopen');
        $('#abtbg').addClass('bgopen'); 
    }

    else {

    }}

我尝试将它包装在窗口(加载),文档(准备好)中无效...

1 个答案:

答案 0 :(得分:1)

你应该真正重构你的代码!

设置延迟为1 ms的间隔在您的情况下是无用的,并且只能导致错误,因为浏览器调用间隔回调函数的时间超过此1 ms。

更改您的逻辑代码并尝试使用此代码:

setInterval(myFunc,100);