Регистрация jQuery щелчка, первый и второй клик

Есть ли способ запустить две функции, подобные этому:

$('.myClass').click(
    function() {
        // First click
    },
    function() {
        // Second click
    }
);

Я хочу использовать базовое событие переключения, но .toggle() устарел.

Ответы

Ответ 2

Или это:

var clicks = 0;

$('.myClass').click(function() {
    if (clicks == 0){
        // first click
    } else{
        // second click
    }
    ++clicks;
});

Ответ 3

это я работал для своего меню

var SubMenuH = $('.subBoxHederMenu').height();  
var clicks = 0;

        $('.btn-menu').click(function(){
          if(clicks == 0){
            $('.headerMenu').animate({height:SubMenuH});
            clicks++;
            console.log("abierto");
          }else{
            $('.headerMenu').animate({height:"55px"});
            clicks--;
            console.log("cerrado");
          }
          console.log(clicks);
        });

Ответ 4

Я не знаю, что вы пытаетесь сделать, но мы можем получить базовый переключатель

$('.myClass').click({
   var $this=$(this);        
   if($this.is(':hidden'))
    {
      $this.show('slow');
    }else{
      $this.hide('slow');
    }
 })

note: это работает для бесконечного события клика для этого элемента.. не только для двух кликов (если это то, что вы хотите)

ИЛИ вы можете использовать класс css, чтобы скрыть/показать div и использовать jquery.toggleClass()

Ответ 5

В приведенном ниже методе Мы передаем массив функций нашей пользовательской функции .toggleClick(). И мы используем атрибут data-* HTML5 для хранения индекса функции, который будет выполнен в следующей итерации процесса обработки событий кликов. Это значение, сохраненное в свойстве data-index, обновляется на каждой итерации, поэтому мы можем отслеживать индекс функции, которая должна быть выполнена в следующей итерации.

Все эти функции будут выполняться один за другим на каждой итерации события click. Например, в первой итерационной функции в index[0] будет выполняться, в 2-й итерационной функции, сохраненной в index[1], будет выполнена и так далее.

В этом случае вы можете передать только 2 функции в этот массив. Но этот метод не ограничивается только двумя функциями. Вы можете передавать 3, 4, 5 или более функций в этом массиве, и они будут выполнены без внесения каких-либо изменений в код.

В приведенном ниже фрагменте приведена обработка четырех функций. Вы можете передавать функции в соответствии с вашими потребностями.

$.fn.toggleClick = function(funcArray) {
  return this.click(function() {
    var elem = $(this);
    var index = elem.data('index') || 0;

    funcArray[index]();
    elem.data('index', (index + 1) % funcArray.length);
  });
};

$('.btn').toggleClick([
  function() {
    alert('From Function 1');
  }, function() {
    alert('From Function 2');
  }, function() {
    alert('From Function 3');
  }, function() {
    alert('From Function 4');
  }
]);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<button type="button" class="btn">Click Me</button>
<button type="button" class="btn">Click Me</button>

Ответ 6

            var click_s=0;
            $('#show_pass').click(function(){
                if(click_s % 2 == 0){
                    $('#pwd').attr('type','text');
                    $(this).html('Hide');
                }
                else{
                    $('#pwd').attr('type','password');
                    $(this).html('Show');
                }
                click_s++;
            });