2013-06-05 5 views
1

Я хочу дать стиль текущему элементу меню, который щелкнут. Для этого я добавил класс, используя jQuery. Для этого я использовал следующий код.addClass и removeClass в jQuery

jQuery(document).ready(function(){ 
    jQuery('#submenu li a').click(function() { 
     jQuery(this).addClass('current_menu'); 
    }); 
}); 

Но когда я нажимаю на другой пункт меню, класс current_menu не удаляется, а стиль остается, как есть. Я хочу удалить стиль при нажатии на другой пункт меню. См. http://itnews4india.com/. Как я могу решить эту проблему?

+0

возможно дубликат [JQuery removeClass и addClass в функции] (http://stackoverflow.com/questions/13198093/jquery -removeclass-and-addclass-in-a-function) – undefined

+0

http://stackoverflow.com/questions/13295982/jquery-addclass-removeclass-on-click – undefined

ответ

2

В своем коде вы просто добавить класс, но никогда не удалить старые версии.

jQuery(document).ready(function(){ 
    jQuery('#submenu li a').click(function() { 

     // remove the old menu items class 
     jQuery('.current_menu').removeClass('current_menu'); 

     // add the new one 
     jQuery(this).addClass('current_menu'); 
    }); 
}); 

В зависимости от остальной части кода, селектор в удалении, возможно, придется скорректировать что-то вроде #submenu li a.current_menu'.

+0

Спасибо большое. Я пытался это только –

1

Попробуйте

jQuery(document).ready(function(){ 
    jQuery('#submenu li a').click(function() { 
    jQuery("#submenu li a").removeClass('current_menu'); 
    jQuery(this).addClass('current_menu'); 
}); 
}); 
1

ли это:

jQuery(document).ready(function(){ 
    jQuery('#submenu li a').click(function() { 
     jQuery('a.current_menu').removeClass('current_menu'); 
     jQuery(this).addClass('current_menu'); 
    }); 
}); 

Третья строка в коде удалит current_menu класс из ссылки, если у них есть уже.

1

Попробуйте это: -

jQuery(document).ready(function(){ 
    jQuery('#submenu li a').click(function() { 
     // Remove class from all anchors inside list 
     jQuery('#submenu li a').removeClass('current_menu'); 

     // Add class on selected/clicked anchor 
     jQuery(this).addClass('current_menu'); 
    }); 
}); 
1

Пожалуйста, попробуйте следующее:

$(document).ready(function(){ 
     $('#submenu li a').click(function() { 
      $('#submenu li a').removeClass('current_menu'); 
      $(this).addClass('current_menu'); 
     }); 
    }); 
1

Вещь вы должны удалить class перед добавлением одного.

jQuery(document).ready(function(){ 
    jQuery('#submenu li a').click(function() { 
     jQuery('a.current_menu').removeClass('current_menu'); 
     jQuery(this).addClass('current_menu'); 
    }); 
}); 
0
jQuery(document).ready(function() { 
    jQuery('#submenu li a').click(function() { 
     jQuery('#submenu li').find('a').each(function(){ 
      jQuery(this).removeClass('current_menu'); 
     }) 
     jQuery(this).addClass('current_menu'); 
    }); 
}); 
1

Там также есть функция toggleClass: jQuery Api toggleClass

$('#submenu li a').click(function() { 
    $(this).toggleClass('current_menu just_menu'); 
}; 

Обратите внимание, что элемент должен один из этих классов изначально!

1

стиль color в .current_menu является покрытие по #submenu li a

добавить #submenu li a.current_menu {color:#fff;} в вашем CSS

+0

Я сделал это –