当我不再徘徊时如何隐藏div

时间:2010-08-28 18:37:20

标签: jquery hover show-hide

我正在使用Jquery隐藏显示div。我希望在'.microblogpostwrapper'悬停时显示div,并在不悬停时隐藏。完成了第一次,但是在没有徘徊时无法隐藏它。

  $(".microblogpostwrapper").hover(function(){ 
            $(this).find(".microblogpostactions").show();
                                });

3 个答案:

答案 0 :(得分:4)

mouseenter处理程序将针对mouseleave触发一次,针对$(".microblogpostwrapper").hover(function(){ $(this).find(".microblogpostactions").toggle(); // Toggle the show/hide }); 触发一次。

$(".microblogpostwrapper").hover(function( e ){ 
    $(this).find(".microblogpostactions").toggle( e.type == 'mouseenter' );
});

您可以通过将布尔值传递给.hover()来确保执行正确的切换:

hover()

或者,您可以将第二个功能传递给使用.hide()的{​​{1}}。

答案 1 :(得分:0)

jQuery的.hover() binds two handlers,一个用于'in',另一个用于'out'。以下内容应该达到你想要的效果(尽管可能值得将你操作的元素分配给变量以提高速度):

$(".microblogpostwrapper").hover(
    function(){ 
        $(this).find(".microblogpostactions").show();
    },
    function(){
        $(this).find(".microblogpostactions").hide()
    }
);

答案 2 :(得分:0)

你可以使用mouseenter / mouseleave来阻止冒泡(在鼠标移动时重新调用悬停):::

$(".microblogpostwrapper").mouseenter(function() {
    $(this).find(".microblogpostactions").show();
}).mouseleave(function() {
    $(this).find(".microblogpostactions").hide();
});​