jquery on('load',...)没有被调用

时间:2016-09-01 09:07:07

标签: jquery

如果我在html正文中放入iframe,则会调用'on load'。 但是当我向身体追加一个iframe时,它就不会被调用。 为什么会这样做?可以做些什么?

$('iframe').on('load', function() {
    console.log("loading iframe");
});

$body.append('<iframe id="frame" src="http://lalalala.nl/index_of/content?F=2"></iframe>');

2 个答案:

答案 0 :(得分:2)

问题在于,当您调用$('iframe')时,iframe尚不存在,因此您不会绑定任何元素。颠倒操作的顺序。

$body.append('<iframe id="frame" src="http://lalalala.nl/index_of/content?F=2"></iframe>');
$('iframe').on('load', function() {
    console.log("loading iframe");
});

或者您可以将iframe创建为断开连接的元素并绑定它,然后附加它。

$('<iframe id="frame" src="http://lalalala.nl/index_of/content?F=2"></iframe>').on('load', function() {
    console.log("loading iframe");
}).appendTo($body);

答案 1 :(得分:0)

首先尝试创建iframe元素,然后附加它:

$(document).ready(function () {
  var iframe = $('<iframe id="frame" "src="..." />').on('load', function(){
    alert('loaded');
  });

  $('body').append($(iframe)); 
});