@grande2k

Как отключить обработчик событий jQuery?

Здравствуйте, можете пожалуйста подсказать как отключить обработчик событий для конкретного элемента?
Вот код:
<div class="pay-ways__tabs">
        <p data-tab="1" class="disabled">При получении</p>
	<p data-tab="2" class="tab-active">Онлайн</p>
</div>
<!-- Там дальше идут две формы с такими же data-tab атрибутами-->


А вот JS:
$('.delivery__tabs p').bind('click', function() {
		var dataTab = $(this).data('tab'),
			tabContent = $('.pay__body form[data-tab="'+dataTab+'"]');

		$('.pay__body form').removeClass('active');
		tabContent.addClass('active');

		$('.delivery__tabs p').removeClass('tab-active');
		$(this).addClass('tab-active');	
	});

	$('.delivery__tabs p.disabled').unbind('click');


Тут я методом .unbind() хотел убрать обратчик события 'click', для таба с классом 'disabled', но почему не убираеться.
  • Вопрос задан
  • 247 просмотров
Пригласить эксперта
Ответы на вопрос 1
zkrvndm
@zkrvndm
Архитектор решений
Попробуйте так:
$('.delivery__tabs p').bind('click', function() {
    if (typeof delivery_tabs_p == 'undefined' ) {
        console.log('Обработчик работает');
    }
});

Пока переменная delivery_tabs_p не существует, обработчик работает.

Чтобы отключить обработчик, достаточно записать в переменную что-нибудь:
delivery_tabs_p = '1';
Понимаю, решение так себе, но зато можно не вникать, почему там обработчик не отменяется у вас.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы