我有一个定时器功能无法正常工作的问题,任何人都可以说明为什么会出现这种情况?我确定这很简单,但不确定它是什么。
<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);
});
});
感谢。
答案 0 :(得分:2)
您需要将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。