gpt4 book ai didi

JavaScript setTimeout 不起作用

转载 作者:行者123 更新时间:2023-11-28 15:53:00 26 4
gpt4 key购买 nike

我听不懂。在 Chrome 调试器中它可以工作,但是当我将其关闭并刷新页面时,我的 div 是清晰的。

<script type="text/javascript">
$(document).ready(function() {
function banner_change(span) {
if ($(span).hasClass('show')) {
$(span).removeClass('show');
}
}

$('div#spec_banner span').each(function () {
if (!$(this).hasClass('show')) {
$(this).addClass('show')
}
setTimeout(banner_change(this), 5000);
});
});
</script>

感谢您的回答。

最佳答案

几个问题、语法和范围

当使用 setTimeout 而不使用匿名函数时,语法为:

setTimeout(banner_change, 5000); /* no () */

要传递参数需要执行以下操作:

setTimeout(function(){
banner_change(this);
}, 5000);

但是,回到范围,this 已经丢失了 setTimeout 内的上下文(现在可能是 window),因此需要分配给 setTimeout 外部的变量

$('div#spec_banner span').each(function () { 
if (!$(this).hasClass('show')) {
$(this).addClass('show')
}
var span =this
setTimeout(function(){
banner_change(span);
}, 5000);
});

关于JavaScript setTimeout 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19887228/

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