Что делать, если поочередное выполнение функций не работает через toggle в jQuery?
В одной из статей на нашем сайте я рассказывал то, как реализовать поочередное выполнение функций в jQuery.
Но суть в том, что метод, который там используется, подходит только для библиотеки jQuery старых версий, и при использовании новых вы не достигнете желаемого результата.
На одном из проектов я тоже столкнулся с этой проблемой, а поскольку решать ее было нужно, то вот как я это сделал.
Решение – это написать свою подобную функцию, которая могла бы воспроизводить функционал старого toggle.
Функция:
$.fn.oldtoggle = function() {
var b = arguments;
return this.each(function (i, el) {
var a = function () {
var c = 0;
return function () {
b[c++ % b.length].apply(el, arguments);
}
}();
$(el).click(a);
});
};
И пример ее использования:
$(".link").oldtoggle(function() {
$(this).css({"color": "red"});
}, function() {
$(this).css({"color": "blue"});
});
Функцию вы можете использовать в своих нуждах, а сам по себе способ подойдет для любой версии jQuery.