【问题标题】:jquery setInterval ie9 does not firejquery setInterval ie9 不触发
【发布时间】:2012-11-14 12:46:25
【问题描述】:

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

    }}

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

【问题讨论】:

  • 我错过了什么吗,jquery selector docs 没有列出:target?!
  • 您是否在控制台中看到任何错误?
  • 附带说明:setInterval 是一种全局 JavaScript 方法。您的问题标题暗示它是 jQuery 库的一种方法。可能应该是“window setInterval...”或只是“setInterval...”。
  • @Jamiec :target 是一个 CSS 伪类,只有在浏览器原生支持的情况下才能在 jQuery 中工作,IE9 does
  • 您在 jQuery 选择器调用中使用的所有变量是否都已定义并引用 DOM 元素?我想,你确定你不是指$('#bgmain').is(...)main.is(...) 而不是$(main).is(...) 吗?

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


【解决方案1】:

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

延迟1毫秒的间隔设置在你的情况下是没有用的,只会导致浏览器调用间隔回调函数的最小值超过这个1毫秒。

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

setInterval(myFunc,100);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-31
    • 1970-01-01
    • 1970-01-01
    • 2014-03-17
    • 1970-01-01
    • 2022-01-23
    • 2012-03-31
    相关资源
    最近更新 更多