2012-06-26 4 views
3

У меня есть событие click, которое загружает iframe, за которым следует .load (function() для iframe. Проблема заключается в том, что функция загрузки запускается дважды для каждого события клика. кто-нибудь объяснить мне причину, почему это происходит? И как это можно предотвратить?.load (function) стрельба дважды

$(document).ready(function() { 
    $('.Popup').click(function() { 
     $('#myiframe').attr('src', $(this).attr('href')).load(function() { 
      alert('done loading') 
     }) 
     return false; 
    }); 
});​ 
+4

Вы не можете доверять событию загрузки iframe. Найдите [другой способ] (http://stackoverflow.com/questions/5788499/jquery-iframe-load-event), чтобы сделать это –

+1

тривиальный ответ, преобразованный в комментарий? diaf, переполнение стека. Diaf. –

ответ

4

события нагрузки будет срабатывать при создании IFrame, затем еще раз, когда SRC установлен. событие нагрузки довольно поверхностно по разные браузеры так определенно проводят множество тестов.

+2

Это правда. Из [jquery load event] (http://api.jquery.com/load-event/) ... *** Примечание. Методы .live() и .delegate() не могут использоваться для обнаружения события загрузки iframe. Событие загрузки неправильно выравнивает родительский документ, а event.target не задается Firefox, IE9 или Chrome, что требуется для делегирования событий. *** – efesar

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