Есть одностраничное приложение на котором происходит разные манипуляции с элементами, к примеру удаление.
Использую стандартную привязку функции к элементу на какое-то событие.
Но элементы на странице могут меняться и тут возникает проблема:
1. Если делать привязку вида:
var el1=jQuery('.el1');
el1.on('click', function() {
console.log('element1');
})
То такое событие соответственно работает пока мы не сменили элементы. То есть убрали старый el1 и добавили новый el1.
2. Если делать привязку:
jQuery(document).on('click', '.el1', function() {
console.log('element1');
})
То такое событие будет срабатывать даже после замены элементов, но после каждой смены элементов, будет привязываться новый обработчик и в итоге команда будет выполнятся два раза (столько, сколько раз привязался новый обработчик).
Можно вначале привязки делать отвязку от события:
jQuery(document).off('click', '.el1');
jQuery(document).on('click', '.el1', function() {
console.log('element1');
})
Есть ли какой-нибудь другой способ решить данную проблему?