3

在我的情况下,当悬停时<div>,在<div>

但是在某些 div 中,我想在悬停元素之后隐藏前置元素。

这是我的代码及其工作!

HTML:

<div class="one">
    <span class="content"></span>
</div>


<div class="two">
    <span class="content"></span>
</div>

jQuery :

$("div.one > .content").on("hover" , function(){
    var this_ = $(this);
    this_.prev(".top").remove();
});


$("div.two > .content").on("hover" ,function(){
    var this_ = $(this);
    setTimeout(function(){this_.prev(".top").remove();})
});

.one两者.two都是相同的功能,但是我想知道为什么第二个功能在我使用时会影响setTimeout()并且时间为 0 毫秒,为什么 0 毫秒会影响我的功能?

演示:http: //jsfiddle.net/nShCy/

4

2 回答 2

2

不是 0 毫秒,而是4 毫秒延迟

答案很简单:mouseenter 在悬停后被触发,因此您试图删除尚不存在的元素。通过 4 毫秒的暂停和在 4 毫秒内完成的悬停回调,它按预期工作。

于 2013-01-31T10:47:10.473 回答
-2
$(function(){

            $("div.one > .content").on("hover" , function(){
            var this_ = $(this);
            this_.prev(".top").remove();
        });


        $("div.two > .content").on("hover" ,function(){
            var this_ = $(this);
            setTimeout(function(){this_.prev(".top").remove();})
        });

})
于 2013-01-31T10:40:30.473 回答