使用Jquery更改INACTIVE div类

时间:2011-07-26 11:17:25

标签: jquery css hover html mouseover

你怎么建议我这样做?

我有一个menue,默认情况下突出显示(给活动类)到div列表中的第一个div。我需要做的是:当你在父div(列出其他div,列表)内时,有正常的悬停动作。当您离开父div时,最后突出显示的div保持活动状态。合理?均田?

这是我到目前为止所拥有的。 catListInner1是父div,其他的分组。

var aCl = jQuery.noConflict();
aCl(document).ready(function() {

    //takes the initial active class off of the first div. 
aCl("#catListInner1").live({
    mouseenter: function() {
        aCl("#catListInner1 div:first").removeClass().addClass('catListOther');
    }

}); 


aCl(".catListOther").live({
    mouseenter: function(e) {
    //  aCl("#catListInner1 div:first-child").removeClass('catListAct');
        aCl(this).removeClass().addClass('catListAct');
    },
    mouseleave: function(e){
        aCl(this).removeClass().addClass('catListOther');
    },
}); 
}); 

2 个答案:

答案 0 :(得分:1)

我不知道我是否理解这一点,但你想要的是在悬停时突出显示一个元素(在这种情况下为div),如果你悬停同一个类的另一个元素,则只删除此突出显示? 如果是这样的话,这就是我要做的事情:

$('element').mouseenter(function(){
    $('element.class').removeClass('class');
    $(this).addClass('class');
});

这样做,从所有元素中删除悬停类,并应用于当前悬停元素。当鼠标离开当前元素时,没有任何反应。

答案 1 :(得分:0)

这就是最终为我工作的东西::

var aCl = jQuery.noConflict();
aCl(document).ready(function() {
var currentId

aCl(".catListOther").live({ 
    mouseenter: function(e) {

            aCl('.catListAct').not(aCl(this)).removeClass().addClass('catListOther');
        aCl(this).removeClass().addClass('catListAct');
        currentId = aCl(this).attr('id'); //get the ID of the last div you visited
    }
}); 

aCl(".catListAct").live({
    mouseleave: function(e){
        aCl(this).removeClass().addClass('catListOther');

    },
}); 

aCl('#catList').live('mouseleave', function() {
    aCl("#" + currentId).removeClass().addClass('catListAct'); 
          //when leaving parent div, add the class back to the last div you visited in the list
});
});