2013-08-24 5 views
1

Я пытаюсь добавить класс к ссылке при щелчкеJavascript добавить класс по щелчку

Вот код

jQuery(document).ready(function(){ 
    jQuery('#block-block-23 li a').click(function() { 
    jQuery('#block-block-23 li a').addClass("selected"); 

    }); 
    }); 

и проблема Класс добавления при нажатии на ссылку, но когда страница загружается, она автоматически удаляется. Я попробовал функцию toggleClass() также

+0

При загрузке страницы/перезагрузки будет применять оригинальные атрибуты элементов. –

+0

Как это решить? Я хочу, чтобы класс был добавлен постоянно, пока не будет нажата следующая ссылка. –

+0

Является ли ссылка частью навигации? вы загружаете другую страницу по ссылке или одному. –

ответ

0

решаемые мой Prob с

jQuery(document).ready(function(){ 
jQuery("#block-block-23 li a").each(function(){ 
    if(jQuery(this).attr('href') == (location.pathname)){ 
    jQuery(this).addClass('active'); 
    } 
}); 
}); 
0

Когда страница загружена, она загрузит исходное содержимое, чтобы код события клика не загрузился.

Что вы можете сделать, это вручную щелкнуть событие события при загрузке страницы.

Пример

jQuery('#block-block-23 li a').trigger('click'); 

Полный код

jQuery(document).ready(function() 
{ 
    jQuery('#block-block-23 li a').click(function(e) 
    { 
     e.preventDefault(); 
     jQuery('#block-block-23 li a').addClass("selected"); 
    }); 

    jQuery('#block-block-23 li a').trigger('click'); 
}); 

Оптимизировать код

jQuery("#block-block-23 li a[href='+location.pathname+']").each(function() 
{ 
+0

Это снова загрузило бы страницу, и, следовательно, удалило бы любое содержимое, ограниченное контентом, бесконечный цикл. –

+0

ohhhh ... Да, мне нужно передать событие в качестве аргумента ..... одну секунду я его редактирую. –

+0

@ ФейсалСайед отредактирован .... см. Сейчас –

0

Там может быть два Scen arios ...

  1. Приложение является многостраничным.

В этом случае вы можете жестко закодировать класс на другой странице.

  1. Приложение одностраничное и ссылка предназначена только для декорирования.

В этом случае вы можете предотвратить поведение ссылки по умолчанию.

jQuery('#block-block-23 li a').click(function(event) { 
    event.preventDefault(); 
    jQuery(this).addClass("selected"); 
}); 
+1

Как он будет добавлять кластер при загрузке страницы? –

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