Jquery как снова включить после нажатия на выключение?

#jquery #function #click

#jquery #функция #нажмите

Вопрос:

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. Вы должны снова выполнить on() обратный вызов. Извлеките метод в именованную функцию, на которую легко ссылаться / использовать повторно.

Ответ №1:

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

 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');
});