切换Jquery后删除/添加悬停

时间:2011-12-30 12:03:35

标签: jquery click hover toggle

我有这个css:

.disable {
          properties
          }

.comment_action:hover {
                       properties
                       }

我有这个jQuery:

//comment button index disable
$("#mydiv").toggle(function() {
 $(this).find(".comment_action").addClass('disable');   
},
function(){
 $(this).find(".comment_action").removeClass('disable');
});

我遇到的问题是,当我点击 .comment_action时:悬停不会消失或删除。我希望如果我点击课程 .comment_action:hover dissapear ,如果我再次点击,则会显示 .comment_action:hover。

3 个答案:

答案 0 :(得分:1)

您需要在!important伪造选择器中添加要覆盖的属性:hover ...

因为:hover优先,即使应用了.disabled

此外,您的javascript应该使用.comment_action而不是comment_action

来调用查找

参见工作示例:http://jsfiddle.net/TN4rh/11/

答案 1 :(得分:0)

更好的解决方案是切换课程。您尝试做的事情可以在一行中完成。

$("#mydiv").click(function() {
    $(this).find(".comment_action").toggleClass('disable');       
});

Demo

:)

答案 2 :(得分:0)

您告诉浏览器将悬停效果添加到.comment_action。这就是具有该类的所有元素将发生的事情,无论它是否具有任何其他类,例如.disable

解决方案:将:hover属性添加到新的.enable类。不仅要删除和添加.disable,还要添加和删除.enable

.disable {
          properties
          }

.enable:hover {
                properties
                }