Скрипт не работает для щелчков и выбранных состояний навигации - PullRequest
0 голосов
/ 07 июня 2011

Я пытаюсь, чтобы у моей навигации был щелчок и выбранное состояние, но я не могу сделать это с помощью этого кода (веб-сайт: http://bit.ly/rgwsite)

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

nav li выглядит следующим образом

<nav>
  <li class="highlt">
    <a href="index.php" class="home"><span>Home</span></a>
</li>

Причина, по которой нам нужно использовать действие jquery / javascript для добавления класса в навигацию, заключается в том, что он не обновляется при загрузке новой страницы. Например, когда вы находитесь на домашней странице и нажимаете на вкладку «Experience RGW», она загружает только контент для этой страницы под заголовком (в разделе «#ajax»). В настоящее время ни один из этих сценариев не работает. Нет причин, по которым они не должны ... может ли быть что-то еще, заставляющее страницу не распознавать скрипт jquery и запускать его по нажатию? Основная причина, по которой я спрашиваю, состоит в том, что я пытался протестировать функцию и добавить предупреждение, но даже это не сработало

Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 07 июня 2011

братья и сестры выбран текущий элемент, вы не хотите удалять его класс 'on'.

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

edit: nvm, ваш код работает нормально : посмотрите на это jsfiddle .

повторное редактирование: я совершенно не прав, братья и сестры не содержат текущего элемента.

повторное редактирование: если вы ссылаетесь на другую страницу (href="index.php"), страница будет перезагружена (или будет загружена новая), и ваше действие по щелчку JavaScript будет забыто, может ли это быть ошибкой?

0 голосов
/ 07 июня 2011

Вы можете попробовать это так:

$(this).parent().siblings().removeClass('on');
$(this).parent().addClass('on');

Что вы сделали, это добавили класс "on" в LI, а затем удалили его с помощью .siblings().removeClass('on');

...