Возможно, я делаю это неправильно/нерационально, но это не работает для меня:jquery не распознает новый класс после .removeClass(). AddClass()?
$(document).ready(function(){
$('li.taglink').click(function(){
alert('clicked tag');
$userClicked = $(this).html();
$('#holder').children('div').each(function() {
$('li.taglinkcurrent').removeClass('taglinkcurrent').addClass('taglink');
$x = $(this).attr("tags");
ele = $x.split(',');
for (var i = 0; i < ele.length; i++)
{
if ($userClicked == ele[i]) {$(this).show(495); break;}
else {$(this).hide(495);}
}
});
$(this).removeClass('taglink').addClass('taglinkcurrent');
});
$('li.taglinkcurrent').click(function(){
alert('clicked current');
$('li.taglinkcurrent').removeClass('taglinkcurrent').addClass('taglink');
$('li.taglink').show(495);
});
});
страница содержит дивы с «метки» атрибутов, который содержит несколько тегов. У меня также есть неупорядоченный список, каждый элемент которого содержит отдельные теги. Когда пользователь нажимает один из элементов li, он показывает все div, которые имеют этот тег, и скрывает все остальное. Если пользователь нажимает на тот же элемент li, он снова показывает все. Я добавил в предупреждениях, чтобы проверить, что происходит, и каждый раз, когда я нажимаю ссылку, она выталкивает «щелкнув ссылку», даже когда у ли ее класс переключился на .taglinkcurrent. Любые идеи о том, что я сделал неправильно?
Ваш код нуждается в очистке. У вас одинаковое предупреждение в обоих случаях. Может быть, вы могли бы разместить свой HTML в [скрипке] (http://jsfiddle.net)? –
Вы знаете, что $ ('. Class_name') выполняет итерацию через DOM, чтобы найти ваши объекты ... и вызывая его дважды, итерации дважды ... правильно? Сохранение результатов в переменной пропустит повторы. –