Jquery, как снова включить после выключения? - PullRequest
0 голосов
/ 30 марта 2019

https://codepen.io/jh-ko/pen/EJYbWZ

После того, как я нажал кнопку, функция щелчка должна быть остановлена. И я хочу снова включить его, после того как я снова нажму другую функцию. Но функция щелчка «кнопки» снова не работает.

Как мне снова включить функцию щелчка?

$('.button').click(function() {
  $('.item01').css('transform', 'rotate(323deg)');
  $(".button").off('click');
})

$(".again").click(function(){
  $(".button").on('click');
})

1 Ответ

0 голосов
/ 30 марта 2019

Повторное использование метода

function doSomething () {
    $('.item01').css('transform', 'rotate(323deg)');
    $(".button").off('click');
}

$('.button').on('click', doSomething);

$(".again").click(function(){
  $(".button").on('click', doSomething);
});

Или используйте класс

function doSomething () {
    if ($(this).is(':not(.ignore)')) {
      $('.item01').css('transform', 'rotate(323deg)');
      $(this).addClass('ignore');
    }
}

$('.button').on('click', doSomething);

$(".again").click(function(){
  $(".button").removeClass('ignore');
});

Или использовать класс с прослушивателем событий делегата

function doSomething () {
  $('.item01').css('transform', 'rotate(323deg)');
  $(this).addClass('ignore');
}

$(document).on('click', '.button:not(.ignore)', doSomething);

$(".again").click(function(){
  $(".button").removeClass('ignore');
});
...