Jquery циклический между двумя функциями

Привет, я делаю переключатель, который должен переключаться между двумя функциями, только что узнал, как это сделать с помощью уникального триггера:

jQuery.fn.clicktoggle = function(a, b) {
  return this.each(function() {
    var clicked = false;
    jQuery(this).bind("click", function() {
        if (clicked) {
            clicked = false;
            console.log(clicked);
            return b.apply(this, arguments);
        }
        clicked = true;
        console.log(clicked);
        return a.apply(this, arguments);
    });
  });
}
jQuery("myTrigger1").clicktoggle(myOpen, myClose);

Это работает нормально, когда у меня есть уникальный триггер, то есть "myTrigger1"... Но как это сделать в течение двух триггеров?

jQuery(".myTrigger1, .myTrigger2").clicktoggle(myOpen, myClose);    

Цикл не работает хорошо... Когда я щелкаю один из триггеров, он переключается между двумя функциями открытия и закрытия, но если щелкнуть другой триггер, когда действие "myOpen", я должен нажать дважды...

Что если бы у меня было 3 триггера, чтобы сделать то же самое?

Функции "myOpen" и "myClose" не являются функциями jQuery.toggle, они содержат некоторый код внутри.

Пожалуйста помоги!

1 ответ

Я нашел решение, прикрепив класс к элементу, который можно проверить изнутри функции:

jQuery('.myTrigger1, .myTrigger2').on('click', function (event) {
    jQuery('.myDiv').toggleClass('toggled');
        if (jQuery('.myDiv').hasClass('toggled')) {
            myOpen();
        } else{
            myClose();
        }
})
Другие вопросы по тегам