различия в реализации JS в разных браузерах

PooH

столкнулся с одной вещью
пример:
<body>
 <div id='1'>lala</div>
</body>
script:
a.bind('click', function{
  alert('A clicked!');
}); // биндим алерт на клик по диву
var a = $("div#1"); записываем обернутый объект в переменную
$("body").empty; // удаляет все children объекты из DOM
a.appendTo("body"); // вставляем наш див
// если теперь вызвать
$("div#1").click;
// тов ие увидим алерт, а хром и фаерфокс будут хранить тишину
из-за чего возникает такая ситуация?
ие копирует хэндлеры или не удаляет полностью объекты?

PooH

перенесите в девелопмент

artimon


To avoid memory leaks, jQuery removes other constructs such as data and event handlers from the child elements before removing the elements themselves.
Используй .detach

PooH

хм, да не в этом вопрос
вот когда я записал элемент в переменную, что именно произошло - появился такой же объект, записалась ссылка или что?

PooH

объясню получше
на некую страницу выводится форма - изменить форму на серверной стороне я не могу
поэтому я написал скрипт, которые эту форму убирает со страницы, но при этом сохраняет ее в собственную переменную, потом парсит на составляющие (там есть описание, цена, набор опций - радиобуттонов)
т. к. таких форм на странице может быть несколько (9-20 не хотелось бы чтобы объектов было в два раза больше
форма сохраняется в виде обернутого набора в специальный объект
при этом перед сохранением на форму навешивается eventHandler на событие submit (отправка данных через AJAX но не мною
после сохранения объекта формы в переменную, сама форма удаляется из DOM
при доступе по переменной (var form = $("form"); form.submit; ) она сабмитится, но в ие срабатывает навешанный submit через AJAX, а в хроме/файрфоксе - срабатывает дефолтный сабмит формы
сейчас я просто после сохранения в переменную убираю хэндлер на сабмит, а потом снова навешиваю, после этого все работает
хотелось бы понять почему в разных браузерах срабатывает по-разному
Оставить комментарий
Имя или ник:
Комментарий: