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();
}
})