2016-09-05 6 views
0

Я строю список изображений динамически. То, что я хочу сделать, - это когда пользователь нажимает текст закрытия (внутри моего элемента DIV), код удалит это конкретное изображение (элемент списка). Приведенный ниже код делает это, ПЕРВОЕ время, выбранное DIV. После этого он, кажется, игнорирует мой прослушиватель событий div и прыгает прямо в jquery на функцию щелчка.события click в JavaScript

function removeItem(){

var test = document.querySelector('li > div').addEventListener('click', function(){ 
    $(document).on('click', 'li', function() { 
     var photoId = (this.id); 
     $("#"+photoId).remove(); 
    }); 
}); 

Как я могу сделать так, что всегда будет выполняться, когда DIV выбран, а не только в первый раз?

Я новичок в изучении JavaScript, поэтому любая помощь оценивается!

ответ

1

Когда пользователь нажимает на DIV, вы ничего не извлекая, вы просто добавить новый щелчок слушателя всеLI сек, что удаляет, что LI. Затем пользователю нужно нажать еще раз, чтобы запустить второй обработчик. Это должно быть просто:

$(document).on('click', 'li > div', function() { 
    $(this).parent().remove(); 
}); 

Кстати, нет смысла писать

var photoId = (this.id); 
    $("#"+photoId).remove(); 

Это просто $(this).remove(). Зачем искать идентификатор, когда у вас уже есть ссылка на сам элемент?

+0

Большое спасибо! – menix

Смежные вопросы