Артём Мáлков

Что делать, если поочередное выполнение функций не работает через toggle в jQuery?

21 дек0 комм

В одной из статей на нашем сайте я рассказывал то, как реализовать поочередное выполнение функций в 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.

Рекомендуем к просмотру
Реализация методов fadeOut и fadeIn из jQuery на JavaScript
Модули и скрипты
Как проверить, содержит ли массив определенное слово, фразу или текст на PHP/jQuery/JavaScript?
Статьи и советы
Поочередное выполнение функций на jQuery
Статьи и советы
0
комментариев
Форма комментирования этого поста скрыта. Авторизуйтесь, чтобы расширить привилегии гостевого посещения и получить необходимую помощь от сообщества Pandoge.
Подняться наверх
«Pandoge» - помощник вебмастера