Не нужно ничего удалять и снова добавлять. Используйте делегированную обработку событий:
document.addEventListener('click', function(e) {
if (e.target.classList.contains('class')) {
deletComment(e.target);
}
}, false);
UPD по комментариюstopPropagation не помог
Я бы удивился, если бы помог, т.к. document в иерархии всплытия события, будет стоять последним в очереди. Я в принципе вам предлагал использовать делегирование, т.е. один обработчик клика на весь документ. В вашем случае, проблему можно решить, установив обработчик на ближайший родительский статичный элемент, а не на весь документ. И, если присутствуют еще какие-то родительские элементы, на которых так же установлен клик, то делать проверку внутри их обработчика.
Вариант 1,
Вариант 2.
А что касается предложенного мной вариант с установкой одного обработчика, то могу показать, как я это реализовывал в некоторых проектах, может пригодится в будущем ... или настоящем :)
Пример в песочнице При добавлении нового элемента, я только дописываю ему в data-атрибут метод, который должен быть вызван при клике и описываю сам метод в объекте "methods"
<div class="wrapper" data-method="setBgColor">
wrapper
<div class="parent" data-method="alertHello">
parent
<div class="child" data-method="changeBorder">
child
</div>
</div>
</div>
document.addEventListener('click', function(e) {
var el = e.target;
if (methods.hasOwnProperty(el.dataset.method)) {
methods[el.dataset.method].call(el);
}
}, false);
var methods = {
setBgColor: function() {
this.style.backgroundColor = '#ff0';
},
alertHello: function() {
alert('Hello, world!');
},
changeBorder: function() {
this.style.border = '3px dashed #900';
}
};