jquery: события на уничтоженных объектах

185
10 мая 2018, 07:10

подскажите пожалуйста, если я на какой-то объект подвесил событие

$('').on('', function(){});

потом объект удалил

Будет ли удалено событие? И если я создам потом новый объект и новое событие - будет ли только одно событие?

P.S.

кажется события не удаляются и могут вызываться по нескольку (например, нажатия)

тогда вопрос такой - а как удалить элементы и события вместе с ними

Я делал так:

$('.box').empty();
Answer 1

кажется события не удаляются и могут вызываться по нескольку - приведи пример своего кода и как ты это проверял – 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, когда событие отлавливается у родителя.

Answer 2

До jQuery 3 версии:

$('.el').unbind("click");   // jQuery до 3 версии

После jQuery 3 версии:

$('.el').off("click");  // jQuery 3+

И помоему если написать так то оно удалит элемент и все события привязанные к нему:

$('.el').remove();
READ ALSO
Не могу подключиться к socket.io с помощью Ruby

Не могу подключиться к socket.io с помощью Ruby

Помогите разобраться с socketio

203
Проигрывание музыки 1 раз

Проигрывание музыки 1 раз

подскажите как сделать проигрывание звука на сайте только 1 разПользователь зашел - проигрался звук, но если он опять перешел с другой вкладки...

133
Как отсортировать данные в Google spreadsheet?

Как отсортировать данные в Google spreadsheet?

Есть некая таблицаВ ней есть 2 столбца "ID" и "Номер страницы"

179