Выберите ID и класс, затем переключите элемент в jQuery - PullRequest
0 голосов
/ 25 марта 2020

Я пытаюсь переключить класс элемента и запускаю функцию, в зависимости от того, включен или выключен класс curent.

  $("#menu-item-485.current-menu-item").click(function(){
           alert('I am function A');
    $("#eduplugin_personal_wiki_widget-2").toggle(1000);
    $("#menu-item-485").toggleClass('current-menu-item not-current-menu-item');
  });
  $("#menu-item-485.not-current-menu-item").click(function(){
          alert('I am function B');
    $("#eduplugin_personal_wiki_widget-2").toggle(1000);
    $("#menu-item-485").toggleClass('current-menu-item not-current-menu-item');
  });

Когда я загружаю страницу, код работает нормально, и активирует функцию оповещения A (случай: включен) и функцию оповещения B (случай: выключен). Но если я затем снова щелкаю по элементу, он снова запускает ту же функцию: то есть, если начальное состояние ID = menu-item-485 и class = current-menu-item, он запускает функцию оповещения A, даже если я переключаю его.

Я бы хотел, чтобы одним щелчком была функция A, двумя щелчками функция A, а затем B, et c.

Всего наилучшего, Томас

1 Ответ

0 голосов
/ 25 марта 2020

Вам необходимо добавить удаляемые классы к другому элементу. Вы должны использовать toggleClass только с одним классом current-menu-item.

Нет необходимости добавлять класс not-curren-menu-item, было бы намного лучше, если бы у вас просто было current-menu-item, а по пропущению это означало бы, что это не текущий элемент.

Попробуйте это и дайте мне знать, я на самом деле не пробовал, хотя:

$("#menu-item-485").click(function () {
   if($(this).hasClass("current-menu-item")) {
      alert('I am function A');
   }
   else {
      alert('I am function B');
   }
   $("#eduplugin_personal_wiki_widget-2").toggle(1000);
   $(this).toggleClass('current-menu-item');
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...