Задать вопрос
werber
@werber
Системный администратор Windows

Как отключить выполнение события click при смене у элемента id?

Итак, есть элемент , для него написан такой JS код:
$("#block1").click(function(){
    $(this).attr("id","block2");
});

Таким образом производится смена ID блока. Но загвоздка в том, что тут же в коде есть обработка клика на block2, и она выполняется тут же, хотя мне это не нужно в данный момент. Вот при повторном нажатии на уже переименованный block2 - тут можно. Про preventDefault я в курсе, но он нейтрализует событие у данного элемента.

Вопрос в том, как нейтрализовать выполнение $("#block2").click при смене у его id?
  • Вопрос задан
  • 339 просмотров
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
frost18
@frost18
Программист PHP
$(document).on('click', '#block1', function(){
    $(this).attr("id","block2");
});
Ответ написан
Комментировать
no_one_safe
@no_one_safe
Можно, например, вырезать из DOM блок $("#block2") и тут же вставить обратно, после этого повесить новый обработчик click.
Еще можно смотреть в сторону unbind

как вариант:
$(document).ready(function(){
    $("#block1").click(function(){
        $(this).attr("id","block2");
        $(this).unbind('click');
        $(this).click(function(){
            //... новый функционал
        });
    });
});
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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