JQuery удалить класс из дублированного элемента

0

У меня есть работа jQuery, чтобы позволить ссылкам активировать свое подменю на мобильном устройстве, не переходя на ссылку с нажатой до второго щелчка.

jQuery('ul.nav > li.parent > a').click(function(event){
  if (jQuery(this).parent().hasClass('firstClick')) {
  } 
  else {
    event.preventDefault();
    jQuery(this).parent().addClass('firstClick')
  }
});

Я бы так хотел, чтобы при addClass('firstClick') в else, он также найдет все остальные элементы списка с классом "firstClick" и удалит его. Я попытался добавить

find('ul.nav > li.firstClick').removeClass('firstClick');

к другому, но безрезультатно. Любая помощь будет с благодарностью благодарна.

  • 0
    Вы пробовали братьев и сестер (). RemoveClass ('firstClick')?
Теги:

2 ответа

0
Лучший ответ
jQuery('ul.nav > li.parent > a').click(function (event) {
    var $li = jQuery(this).parent()
    if (!$li.hasClass('firstClick')) {
        event.preventDefault();
        $li.addClass('firstClick')
        $li.siblings('.firstClick').removeClass('firstClick')
    }
});
  • 0
    Не должна ли ваша родительская переменная быть jQuery (this) .parent (), если вы вызываете ее позже?
  • 1
    @AndyHolmes нет, поскольку методы jQuery(this).parent() цепочку jQuery(this).parent() и jQuery(this).parent().addClass('firstClick') вернет одно и то же значение
Показать ещё 2 комментария
0

Попробуй это:

jQuery('ul.nav > li.parent > a').click(function(event){
  if (jQuery(this).parent().hasClass('firstClick')) {
  } 
  else {
    event.preventDefault();
    jQuery('.firstClick').removeClass('firstClick'); //remove class
    jQuery(this).parent().addClass('firstClick');
  }
});
  • 0
    почему проголосовали? был бы признателен за комментарий
  • 0
    не слишком уверенный, почему за него проголосовали, этот ответ делает работу просто отлично.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню