就像标题所说的那样。 适用于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 {
}}
我尝试将它包装在窗口(加载),文档(准备好)中无效...
答案 0 :(得分:1)
你应该真正重构你的代码!
设置延迟为1 ms的间隔在您的情况下是无用的,并且只能导致错误,因为浏览器调用间隔回调函数的时间超过此1 ms。
更改您的逻辑代码并尝试使用此代码:
setInterval(myFunc,100);