2011-07-26 31 views
0

你會建議我如何去做這件事?使用jquery更改INACTIVE div類

我有一個菜單默認高亮(給活動類)的div列表中的第一個div。我需要做的是:當你在父div(列出其他divs,列表)時,有正常的懸停動作。當你離開父div時,最後一個突出顯示的div保持活動狀態。合理?均田?

這是我到目前爲止。 catListInner1是其他人分組的其他父分區。

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'); 
    }, 
}); 
}); 
+0

'aCl'呢?這是超級混亂。爲什麼不把它包裝在一個函數中,所以'$'可以在裏面使用? '(function($){...})(jQuery.noConflict());' – ThiefMaster

回答

0

這是結束了工作,我::的`$`或`jQuery`

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 
}); 
}); 
1

我不知道如果我理解這一點對的,但你想要的是突出(在這種情況下div)上懸停的元素,只有當你將鼠標懸停在同一類的其他元素中刪除這個亮點? 如果是這樣的話,這裏就是我想要做的:

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

它的作用是什麼,從所有元素中刪除懸停類,並適用於目前徘徊元素。當鼠標離開當前元素時,沒有任何反應。