我只想通过在点击时切换一个类来控制div,以及在鼠标离开div时将其删除。
我使用了mouseout,但当我进入子元素时,mouseOut被触发,所以我知道我需要使用mouseleave。我只是不确定如何合并告诉jQuery鼠标已进入。
更新: 当我使用mouseenter和mouseleave时,似乎函数不起作用 当我将它们交换为鼠标悬停和鼠标移动时,它们可以正常工作。
以下是网站:http://danixd.com/test/
它有很多,但这是代码。我再次回到我正在使用的旧jquery。
的jQuery
$(function(){
$('.main').click(function() {
$(this).toggleClass('activated');
});
});
$(function(){
$('.main').mouseleave(function() {
$(this).removeClass('activated');
});
});
答案 0 :(得分:4)
如果我理解,你想在'click'上添加该类,并在'click'或'mouseleave'上删除该类。
如果是这样,你可以这样做。
$('.main').click(function() {
var $ths = $(this);
if($ths.hasClass('activated'))
$ths.removeClass('activated');
else
$ths.addClass('activated');
}).mouseleave(function() {
$(this).removeClass('activated');
});
答案 1 :(得分:1)
我只是不确定如何合并 告诉jQuery鼠标已进入。
如果是这种情况,则根据我的理解,无需处理点击事件:
$('.main').mouseenter(function() {
$(this).addClass('activated');
}).mouseleave(function() {
$(this).removeClass('activated');
});
答案 2 :(得分:0)
我认为这就是你要找的东西:
$('.main').click(function() {
if ($(this).attr("class").indexOf("activate") > -1) {
$(this).removeClass("activate");
} else {
$(this).addClass("activate");
}
}).mouseleave(function() {
$(this).removeClass("activate");
});