我有以下代码在等待第三方iframe时显示和隐藏加载GIF:
HTML
<div id="waitmessage" class="hide"><img src="/static/images/global/wait.gif"/></div>
的jQuery
$('.iframe').ready(function () {
$('#button').click(function() {
$('#waitmessage').removeClass('hide');
alert('skywalker');
});
});
$('.iframe').load(function () {
$('#waitmessage').remove();
});
但是当加载iframe时,gif仍然在后台加载。 iframe是主页btw上的叠加层。
答案 0 :(得分:2)
不知怎的,你等待.iframe
准备就绪并且选择器没有触发这样的事件,假设选择器返回null,因为DOM还没有被加载。因此.ready
事件处理程序中的任何内容都不会被执行。等待DOM加载的正确方法是使用预定义变量document
。试试这个。
$(function() {
$('#console').text( $('#console').text()+"\r\n"+'DOM is ready');
$('#yt').on('load', function(){
console.log('YouTube loaded');
$('#console').text( $('#console').text()+"\r\n"+'YouTube loaded');
});
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<pre id="console"></pre>
<iframe id="yt" width="560" height="315" src="https://www.youtube.com/embed/AhhEYe5Hczo" frameborder="0" allowfullscreen></iframe>
&#13;