Изменить стиль меню на лету или передать параметр внутри jQuery .each итератор - PullRequest
0 голосов
/ 07 декабря 2009

У меня есть несколько ссылок на меню, и я хочу изменить их стиль при нажатии - скажем, вы нажимаете «о», и он становится жирным и красным. Я выбираю предметы и привязываю к ним событие клика:

$("#nav_menu > *").bind("click",function(){doTrigger(this.id);});

таким образом, я передаю идентификатор выбранного элемента на doTrigger.

Хорошо. Сейчас в doTrigger я пытаюсь перебрать элементы и изменить их стили: все на style1 и щелкнуть, например, на style2 Проблема в том, что:

$("#nav_menu > *").each(function(){;});

не позволит мне передать идентификатор выбранного элемента.

Я думаю, что должен быть менее сложный способ получить то, что мне нужно. Кроме того, я думаю, что я тоже потерян.

Ответы [ 2 ]

0 голосов
/ 07 декабря 2009

Попробуйте что-то вроде этого:

$("#nav_menu > *").bind("click",function(){ $("#nav_menu > *").attr('class', 'class1'); $(this).attr('class', 'class2'); });

Сбрасывает все дочерние элементы на class1 при нажатии на элемент, и тогда только этот элемент равен class2.

0 голосов
/ 07 декабря 2009

функция, переданная в $.each() в doTrigger(), выполняется в контексте и, следовательно, имеет доступ к переменным в doTrigger() - вам не нужно ничего передавать

function doTrigger(id) {
...
   $("#nav_menu > *").each(function(){ /* you can access var id in here */ ;});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...