悬停时显示/隐藏,然后单击时如何保持显示?

时间:2012-01-19 04:23:58

标签: jquery function click hover show-hide

如果我有一个在悬停时显示和隐藏元素的jquery脚本,如何点击它时如何使我应该隐藏的元素保持显示?

$(selector).hover(function(){
//this shows the element on mousein
     $(element).show();
     $(element).click(function(){
            $(this).css({'display':'list-item'});
     });
},function(){
//this hides element on mouseout
     $(element).hide();
}

它的list-item的原因,因为我点击的这个元素是<li>标签。我相信这就是为什么它应该是list-item而不是block?此外,当我在click函数中执行alert($(element).css('display'));时,它会显示list-item。

4 个答案:

答案 0 :(得分:1)

在您的点击处理程序中,您可以在显示元素后取消绑定悬停事件:

$(element).click(function(){
    $(this).css({'display':'list-item'});
    $(selector).unbind('mouseenter mouseleave')
});

答案 1 :(得分:1)

在div上尝试此代码:

$(".comment_div").hover( 
     function() { $(this).children(".comment_actions").show(); }, 
     function() { $(this).children(".comment_actions").hide(); } 
 ).click(
     function(){ $(this).children(".comment_actions").show(); }
 ); 

答案 2 :(得分:0)

声明另一个单击事件处理程序并切换元素。

$(selector).click(function(){
     $(element).toggle();
});

答案 3 :(得分:0)

我会添加一个类,说明该元素是否已被点击。

$(element).click(function () {
    $(this).toggleClass('clicked');
});