потерянные события - PullRequest
2 голосов
/ 25 августа 2009

Я хотел бы знать, существует ли какое-либо известное jquery-поведение, которое вызывает обработчики потери событий (в частности, в iframes)?

У меня странная проблема. Я построил веб-приложение, состоящее из двух iframe. Сначала я загружаю контент в первый iframe. Я добавляю некоторый обработчик событий с помощью jquery для первого содержимого iframe Все работает. При вводе пользователем я загружаю страницу во втором фрейме. Здесь также я добавляю некоторые обработчики событий, используя jquery. Затем происходит странная вещь: jquery потерял обработчики событий в первом iframe. Я сказал «jquery потерян», потому что, если я добавлю слушателя событий по-старому, он все еще присутствует.

Ответы [ 2 ]

2 голосов
/ 26 августа 2009

Проблема решена.

Проблема была вызвана доступом к iframe2.contentWindow или iframe2.contentDocument во втором iframe, когда src второго iframe был изменен (1-й раз все работало, начиная со 2-го и далее вызывало проблемы), и второй кадр был статически закодирован в HTML.

Чтобы решить эту проблему, я всегда удаляю второй iframe, воссоздаю и добавляю его в dom динамически через javascript.

Проблема возникает только в Opera 9.7, встроенной для MIPS (не уверен для точной версии)

0 голосов
/ 25 августа 2009

Возможно, вы захотите использовать live для привязки событий. Таким образом, когда вы добавляете новые элементы с тем же селектором, к ним будет привязано событие.

$("p").live("click", function(){
    $(this).after("<p>Another paragraph!</p>");
});

Каждому последующему p, добавленному на страницу, также будет присвоено событие .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...