javascript - setTimeout() 和 IE8.函数未被调用

标签 javascript jquery internet-explorer-8

我在 Google 甚至 SO 上进行了搜索,但我似乎无法在这里找到解决方案。周五的情况,或者我只是错过了一些东西。

在 IE8 中,不会调用此函数。我读到 setTimeout() 在某种程度上与 IE8 不兼容,但我似乎无法使用我的代码片段来解决此问题。

求助,我错过了什么或做错了什么?

onStartup: function () {
    loginForm = $('div#login-box');

    setTimeout(function () {
        loginForm.show();
    }, 1000);
},

编辑:发现问题,这段用于平板电脑网络应用程序的代码块使我所有的js崩溃了。新问题,如何防止此函数在 IE8 上通过 js 运行。

    // prevent default action when
    // moving finger on ipad/iphone
    document.addEventListener('touchmove', function (event) {
        event.preventDefault();
    }, false);

最佳答案

这并没有使 JS“崩溃” - IE8 遇到错误,因为 IE8 中的 document 对象没有 addEventListener 方法。 IE<9 使用attachEvent

由于您不关心 IE8 中的触摸事件,因此您甚至不必运行该代码,因此只需在其周围放置一个条件来检查 addEventListener 方法是否存在。

解决方法如下:

// prevent default action when
// moving finger on ipad/iphone
if(document.addEventListener) {
 document.addEventListener('touchmove', function (event) {
    event.preventDefault();
 }, false);
}

关于javascript - setTimeout() 和 IE8.函数未被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16613603/

相关文章:

javascript - Angularjs:在 ng-repeat 中加载后运行 jquery

javascript - 样式化输入类型 ="file"

javascript - 在不同的js block 中使用一个变量

javascript - 0.id为null或不是对象,parentElement的parentElement和IE 8

css - 在 Internet Explorer 8 中输入文本字段未获得视觉焦点

javascript - 使用 FormData ajax 提交表单

javascript - 更新后如何将函数传递给 SetState 回调? ( react )

javascript - 'this.value' 实际上可以在触发事件的函数调用中成功使用吗?

javascript - 查找 html 元素并将其替换为特定文本

jquery - 在滚动条上隐藏内容