gpt4 book ai didi

javascript - 带有参数的 setTimeOut 在 IE8 中不起作用

转载 作者:行者123 更新时间:2023-11-30 12:55:39 25 4
gpt4 key购买 nike

谁能告诉我哪里出了问题,我已经在 Firefox 和 Chrome 中测试过它,它工作正常,现在只需要它在 IE8 中工作。

        setTimeout(function(it) {
x = $('.menuheader:first-child').position().left;
w = $('.menuheader:first-child').width();
p = x + w + 16;
$(it).next().css('left', p);
$(it).next().show();
}, 200, this);

也尝试过...

        function showmenu(it){
x = $('.menuheader:first-child').position().left;
w = $('.menuheader:first-child').width();
p = x + w + 16;
$(it).next().css('left', p);
$(it).next().show();
}

window.setTimeout(function() {
showmenu(this)
}, 200);

最佳答案

将参数“传递”给不能接受参数的函数的正确传统方法是使用闭包:

var that = this;
setTimeout(function(){ doStuff(that);}, 200);

function doStuff(it) {
x = $('.menuheader:first-child').position().left;
w = $('.menuheader:first-child').width();
p = x + w + 16;
$(it).next().css('left', p);
$(it).next().show();
}

一个较新的替代方案(不兼容没有 polyfill 的 IE8):

 setTimeout(doStuff.bind(null, this), 200);

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind

关于javascript - 带有参数的 setTimeOut 在 IE8 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19244204/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com