.load(function) 触发两次。

3

我有一个点击事件,它会加载一个iframe,然后是iframe的.load(function()。问题是每个点击事件都会导致load函数触发两次。有人能解释一下这是为什么吗?如何避免这种情况发生?

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

5
不能信任iframe的加载事件。寻找其他方法来实现它。 - Andy Ray
1个回答

5
< p > 当 iframe 被创建时,它会触发 load 事件,然后在设置 src 后再次触发。因为不同浏览器的 load 事件存在差异,请务必进行充分的测试以确保其可靠性。 < /p >

3
确实如此。来自jquery load event... 注意:无法使用.live()和.delegate()方法来检测iframe的加载事件。加载事件不能正确地冒泡到父文档,并且Firefox、IE9或Chrome没有设置event.target,这是必须进行事件委托的。 - efesar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接