javascript - 为什么我设置的超时不起作用?

标签 javascript jquery html css

<分区>


想改进这个问题吗? 通过 editing this post 添加细节并澄清问题.

关闭 9 年前

我有一个定时器功能不工作的问题,谁能指出为什么会这样?我确定这很简单,但不确定它是什么。

<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);
    });


});

谢谢。

参见 http://jsfiddle.net/Jrand/wqJMt/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/

上一篇:当 td 文本太长时,Html css 表格宽度会变大

下一篇:html - 居中 div 而不增加它们的大小并将标题与文本保持在一起?

相关文章:

javascript - Soundcloud JS SDK - 如果应用程序安装在 iOS 上,则 SC.Connect() 回调窗口无法关闭

javascript - 检测 Javascript 内存泄漏和优化代码

javascript - 如何在重置表单时运行 JavaScript 代码?

javascript - 解析JSON响应问题

javascript - div 左侧响应图像固定 100% 高度,div 右侧文本可滚动

javascript 文本到语音阿拉伯语

jquery - 内容隐藏不溢出隐藏

javascript - 通过使用点击事件监听器将 HTML 减轻 50% ?

javascript - 尝试显示 Json 结果但只获取 [Object,Object]

php - 如何在美德商城中获取所有类别和子类别的名称