2013-08-26 5 views
0

Demo: http://jsfiddle.net/f9FDs/Jquery как установить активную ссылку CSS цвета

Как я могу получить цвет ссылки, чтобы перейти к активной ссылке (последний щелкнул) цвета, заданному в CSS?

// Active Menu Link 
jQuery("#navbar-main li a").live('click', function() { 
    jQuery("#navbar-main li a").removeClass("selected"); 
    jQuery(this).addClass("selected"); 
    return false; 
}); 
+1

'.live()' метод является устаревшим и удаляется из новых версий JQuery. используйте '.on()' вместо –

ответ

5

Вы используете устаревший метод, который не существует в версии JQuery, что вы публикуемой в скрипке.

Переход от live() к on()

http://jsfiddle.net/f9FDs/4/

Пожалуйста, обратите внимание, что если вы используете live() для динамически создаваемых элементов, то on() eqvivalent принимает 3 аргумента, чтобы использовать событие делегации:

jQuery("#navbar-main").on('click', 'li a', function() { 
+0

Действительно: http://jsfiddle.net/davidThomas/f9FDs/2/ –

+0

сладкое спасибо, вы так smatt! Cheers – KevinOrin

+3

Первый, чтобы попасть туда, все будет на 30 секунд :) – Vector

6

"live" устарел. Вместо этого используйте «on».

Fiddle: http://jsfiddle.net/f9FDs/3/

jQuery("#navbar-main li a").on('click', function() { 
    jQuery("#navbar-main li a").removeClass("selected"); 
    jQuery(this).addClass("selected"); 
    return false; 
}); 
+0

+1, но для того, чтобы быть более оптимальным: 'jQuery («. Selected »). RemoveClass (« selected »);' –

+0

@ Karl-AndréGagnon Если вы хотите более эффективную производительность, рассмотрим '$ ('# navbar-main'). find ('. selected'). removeClass (« selected »);' – Johan

+0

@ Karl-AndréGagnon - Это было бы более оптимальным, если только выбранный класс используется в другом месте. – htxryan

Смежные вопросы