首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jquery中的清除队列不适用于悬停时的延迟显示隐藏

问jquery中的清除队列不适用于悬停时的延迟显示隐藏
EN

Stack Overflow用户
提问于 2012-08-20 18:06:09
回答 3查看 538关注 0票数 2

最好的方法是查看http://jsfiddle.net/jDn7X/中的示例

代码语言:javascript
复制
$(".container.a1 div").hover(function(e){
    $(".popup").show(300).css({top: (e.pageY + 15) + "px",left: (e.pageX + 10) +"px"});
},function(){
    $(".popup").hide(300);    
});

当我在div数组上移动时,弹出窗口会一直保持不变。

代码语言:javascript
复制
<div class="container a1">
   <div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div>
</div>

clearQueue的行为是随机的。

清除先前jquery计时器的最佳方法是什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-08-20 18:09:44

尝试使用停():

代码语言:javascript
复制
$(".container.a1 div, .container.a2 div").hover(
    function(e){
        $(".popup").stop(true,true)
                   .show(300)
                   .css({top: (e.pageY + 15) + "px",left: (e.pageX + 10) +"px"});
    },function(){
        $(".popup").stop(true,true)
                   .hide(300);    
    }
);

小提琴

我可能会做更像这样的事情(见评论):

代码语言:javascript
复制
$(".container.a1, .container.a2").on({
    mouseenter: function(){
        $(".popup").show(300);
    },
    mouseleave: function() {
        $(".popup").hide(300);    
    },
    mousemove: function(e) {
        $(".popup").css({top: (e.pageY + 15) + "px",left: (e.pageX + 10) +"px"})
                   .text('hovering : '+$(e.target).index());
    }
});
​

小提琴

票数 2
EN

Stack Overflow用户

发布于 2012-08-20 18:18:38

我个人认为,这是错误的方法,以一个工具提示,在许多小型项目经理在附近。

我认为更好的方法是对整个.hover进行.hover,然后更改每个元素的内容。

http://jsfiddle.net/lathan/jDn7X/1/

票数 1
EN

Stack Overflow用户

发布于 2012-08-20 18:11:10

做一个快速.stop() (这里有更多的信息)

$(".popup").stop().hide(300);

这将阻止所有以前的动画发生在有关对象上。

http://jsfiddle.net/jDn7X/4/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12042742

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档