<分区>
标签 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; 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()
将更改 this
的值(关于 here 的解释),因此请确保将 this
分配给新的hover()
函数中的变量,并将其用作您的 .not()
参数:
$(".item").hover(function () {
var item = this;
tooltipTimeout = setTimeout(function() { $(".item").not(item).stop().fadeTo("slow", 0.5) }, 2000);
},
function () {
$(".item").stop().fadeTo("slow", 1);
});
参见 DEMO .
关于javascript - 为什么我设置的超时不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15348897/