@desmos

Чем заменить событие toggle на jquery чтобы по клику и повторному клику можно было производить два разных действия?

Здравствуйте!
Есть две кнопки и n-е количество блоков.
При клике на кнопку №1 определенные блоки должны скрываться, например, 1,4,5,8.
При повторном клике на кнопку №1 все блоки должны быть снова видны.

Если часть кнопок при нажатии на кнопку №1 уже скрыта и нажимается кнопка №2, то все блоки должны показаться, кроме тех что должна "гасить кнопка 2, например, 2,3,6,9.

Раньше это можно было реализовать с помощью toggle.
$('#btn').toggle(function(){
    $('#id1, #id4, id5, #id8').hide();
}, function() {
    $('[id^=id]').show();
);

Как это сделать сейчас когда в новых версиях toggle нет?
  • Вопрос задан
  • 766 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Ridz
$.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)
    })
};
$('#btn').oldtoggle(function(){
    $('#id1, #id4, id5, #id8').hide();
}, function() {
    $('[id^=id]').show();
);
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы