2012-03-13 16 views
9

यहाँ है एचटीएमएल:jQuery वर्तमान ली को वर्ग जोड़ सकते हैं और पिछला ली को दूर जब ली के अंदर क्लिक एक

<ul>  
    <li class="current"><a href="#">menu item</a></li> 
    <li><a href="#aba">menu item</a></li> 
    <li><a href="#abb">menu item</a></li> 
    <li><a href="#abc">menu item</a></li> 
    <li><a href="#abd">menu item</a></li> 
</ul> 

अगर मैं प्रेस क्लिक किया ली को 'एक' लिंक यह addClass 'वर्तमान' होगा और पुराने ली वर्ग को दूर ? यह मेरी कोशिश है:

$('ul li a').click(function(){ 
    $('ul li').removeClass('current'); 
    ... don't know here (add class to current li) ... 
}); 
+0

jQuery महान प्रलेखन जो लायक है है पढ़ने: http://api.jquery.com/category/traversing/ –

+0

nvm मिला यह धन्यवाद रोब – test

उत्तर

29

उपयोग .parent('li') या .closest('li') क्लिक किया <li> चयन करने के लिए।

$('ul li a').click(function() { 
    $('ul li.current').removeClass('current'); 
    $(this).closest('li').addClass('current'); 
}); 
+0

धन्यवाद काम ठीक – test

0

शायद आप इसका मतलब है?

पर आप jQuery

$('ul li a').on('click', function(){ 
    $(this).parent().addClass('current').siblings().removeClass('current'); 
}); 

एक बेला here है के नवीनतम संस्करण उपयोग कर रहे हैं ('क्लिक')

$('ul li').each(function(){ 
    var t = $(this); 
    t.find('a').click(function() { 
    $('ul li').removeClass('current'); 
    t.addClass('current'); 
    }); 
}); 
6

का प्रयोग करें।

2

रोब सही है लेकिन $('ul li.current').removeClass('current'); मेरे लिए काम नहीं किया। निम्नलिखित कोड काम करता है।

jQuery('ul li a').click(function() 
{ 

jQuery('ul').children().removeClass('selected'); 
jQuery(this).closest('li').addClass('selected'); 

}

संबंधित मुद्दे