setTimeout作为IE8及更低版本中的对象

时间:2014-02-19 10:20:02

标签: javascript object internet-explorer-8 settimeout

对不起,我要问这个,因为这里有很多类似的问题,但我找不到解决问题的方法。我使用setTimeout,它适用于alle浏览器,chrome,ff以及IE9及更高版本。但是在IE8中,超时后应该执行的操作不起作用。我希望今天有人可以帮助我...

var searching = {
    initialize: function (config) {
        this.wait(config.time);
    },
    wait: function(time) {
        setTimeout(function(){      
            $("#example-div").hide;
        }, time);
    }
}
$("#example-submit").click(function() {
    searching.initialize({time: 4000});
}

2 个答案:

答案 0 :(得分:0)

原因:脚本中存在错误,当错误位于setTimeout / setInterval

时,其他浏览器会继续执行脚本

如果是IE,则不会发生这种情况。

因此,您应修复代码,或将代码包装在try{...}catch(e){...}块中。

答案 1 :(得分:0)

代码几乎是正确的。你错过了一些禁忌症:

HTML:

<div id="example-div">example-div</div>
<div id="example-submit">example-submit</div>

JS:

var searching = {
    initialize: function (config) {
        this.wait(config.time);
    },
    wait: function(time) {
        setTimeout(function(){      
            $("#example-div").hide();
        }, time);
    }
}
$("#example-submit").click(function() {
    searching.initialize({time: 4000});
});

小提琴:http://jsfiddle.net/t6NEQ/2/