подскажите пожалуйста, если я на какой-то объект подвесил событие
$('').on('', function(){});
потом объект удалил
Будет ли удалено событие? И если я создам потом новый объект и новое событие - будет ли только одно событие?
P.S.
кажется события не удаляются и могут вызываться по нескольку (например, нажатия)
тогда вопрос такой - а как удалить элементы и события вместе с ними
Я делал так:
$('.box').empty();
кажется события не удаляются и могут вызываться по нескольку - приведи пример своего кода и как ты это проверял – Grundy 1 час назад
Пока приводил код ответа понял в чем дело
$('.box').on('click', '.btn-inc', function() {
var id = $(this).attr('my-data');
var value = parseInt($('#my_' + id).val());
value ++;
$('#my_' + id).val(value);
});
Всё дело в том, что все обработчики висят на родителе .box
, поэтому нужен такой код:
$('.box').unbind();
$('.box').empty();
И всё работает, вопрос лишь в том, не удаляю ли я что-то дополнительное.
Например я хочу удалить обработчики только для .btn-inc
P.S.
Ну и решение именно конкретного случая - поскольку обработчик висит на родителе, нечего его вообще создавать/удалять, он должен быть создан всего один раз и использоваться дальше как есть.
P.P.S.
Но вообще для интереса интересно - как удалить в данной ситуации обработчики только для .btn-inc
, когда событие отлавливается у родителя.
До jQuery 3 версии:
$('.el').unbind("click"); // jQuery до 3 версии
После jQuery 3 версии:
$('.el').off("click"); // jQuery 3+
И помоему если написать так то оно удалит элемент и все события привязанные к нему:
$('.el').remove();
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Виртуальный выделенный сервер (VDS) становится отличным выбором
подскажите как сделать проигрывание звука на сайте только 1 разПользователь зашел - проигрался звук, но если он опять перешел с другой вкладки...
Есть некая таблицаВ ней есть 2 столбца "ID" и "Номер страницы"