Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   нежелательная потеря event-a... jquery... (https://javascript.ru/forum/events/11940-nezhelatelnaya-poterya-event-jquery.html)

Borius 22.09.2010 13:17

нежелательная потеря event-a... jquery...
 
Добрый день.

У меня есть одна проблема.

//1. Допустим создаем массив
var arr = [];


for(var i = 0; i < 100500; i++) {

//2. Заполняем jquery оберткой объекта image
arr.push($(new Image()));

//3. Вешаем на элементы arr события

arr[i].click(function() { alert(i); })

//4. Заполняем image

.attr({src : someifles + i});
}


// 5. Теперь мы хотим это добро вывести в $("#some_div")

for(var i = 0; i < arr.length; i++)
$("#some_div").append(arr[i]);


// 6. Пусть теперь мы хотим поменять содержание и допустим каждый четный вывести в $("#some_div")
$("#some_div").empty();

for(var i =0; i < arr.length; i+=2)
$("#some_div").append(arr[i]);




И тут мы замечаем, что на клик по изображению ничего не происходит!!

Кто нибудь знает, как это исправить, кроме как НЕ удалением из #("#some_div") элементов :help:

Kolyaj 22.09.2010 13:41

Практически все библиотеки считают себя слишком умными и при удалении элемента из DOM-дерева, считают, что он удаляется насовсем, в связи с этим делают с ним всякие умные вещи. :)

Вобщем вместо
Цитата:

Сообщение от Borius
$("#some_div").empty();

$("#some_div").html('');
Должно помочь.

Borius 22.09.2010 13:48

Спасибо за быстрый ответ.

Я уже пытался так сделать, но к сожалению аналогично получается...


Единственный пока способ, это взять этот див и сделать над ним

$("#some_div").appendTo("some_other_element_that_w e_shouldn't_delete");

а потом тока

$("#parent_of_some_div").empty()

В такой связке все ок, правда по моему так не особо хорошо делать...

Kolyaj 22.09.2010 14:04

document.getElementById('some_div').innerHTML = '';
Значит так :)

Borius 22.09.2010 14:11

Мужик! Ты нереально крут! =)

Спасибо большое!=)


Часовой пояс GMT +3, время: 04:56.