Javascript 为什么我的设置超时不起作用?
我有一个定时器功能不工作的问题,有人能指出为什么会出现这种情况吗?我确信这很简单,只是不确定它是什么Javascript 为什么我的设置超时不起作用?,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我有一个定时器功能不工作的问题,有人能指出为什么会出现这种情况吗?我确信这很简单,只是不确定它是什么 <a class="item"></a> <div class="item"></div> <div class="item"></div> <div class="item"></div> <div class="item"></div> .item {width:50px
<a class="item"></a>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
.item {width:50px; height:50px; background:red; margin:10px; float:left; opacity:1; }
$("document").ready(function() {
var tooltipTimeout;
$(".item").hover(function () {
tooltipTimeout = setTimeout( $(".item").not(this).stop().fadeTo("slow", 0.5), 2000);
},
function () {
$(".item").stop().fadeTo("slow", 1);
});
});
您需要将要执行的JS包装在匿名函数中。另外,setTimeout()
将更改此
的值(对此的解释),因此请确保将此
分配给hover()函数中的新变量,并将其用作参数。而不是()
$(".item").hover(function () {
var item = this;
tooltipTimeout = setTimeout(function() { $(".item").not(item).stop().fadeTo("slow", 0.5) }, 2000);
},
function () {
$(".item").stop().fadeTo("slow", 1);
});
请参阅。您没有将函数传递给setTimeout
。