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