3

正如标题所说。适用于 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 {

    }}

我试过将它包装在窗口(加载),文档(准备好)中无济于事......

4

1 回答 1

1

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

在您的情况下,设置延迟为 1 毫秒的间隔是没有用的,并且只会导致错误,因为浏览器调用间隔回调函数的最小值超过了 1 毫秒。

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

setInterval(myFunc,100);
于 2012-11-14T12:52:38.800 回答