Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.09.2010, 13:17
Новичок на форуме
Отправить личное сообщение для Borius Посмотреть профиль Найти все сообщения от Borius
 
Регистрация: 22.09.2010
Сообщений: 3

нежелательная потеря 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") элементов
Ответить с цитированием
  #2 (permalink)  
Старый 22.09.2010, 13:41
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

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

Вобщем вместо
Сообщение от Borius
$("#some_div").empty();
$("#some_div").html('');
Должно помочь.
Ответить с цитированием
  #3 (permalink)  
Старый 22.09.2010, 13:48
Новичок на форуме
Отправить личное сообщение для Borius Посмотреть профиль Найти все сообщения от Borius
 
Регистрация: 22.09.2010
Сообщений: 3

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

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


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

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

а потом тока

$("#parent_of_some_div").empty()

В такой связке все ок, правда по моему так не особо хорошо делать...
Ответить с цитированием
  #4 (permalink)  
Старый 22.09.2010, 14:04
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

document.getElementById('some_div').innerHTML = '';
Значит так
Ответить с цитированием
  #5 (permalink)  
Старый 22.09.2010, 14:11
Новичок на форуме
Отправить личное сообщение для Borius Посмотреть профиль Найти все сообщения от Borius
 
Регистрация: 22.09.2010
Сообщений: 3

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

Спасибо большое!=)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как создать event, эмулирующий enter Artanis Events/DOM/Window 7 16.07.2019 06:40
2 разных модуля на jQuery - как подключить? finder jQuery 4 23.03.2012 22:29
Как мне переложить это на jQuery? сiparis jQuery 7 13.09.2010 23:19
Jquery doctype + ie8 alizid Internet Explorer 5 21.08.2010 13:39