如果在加载iframe时我如何让我的jQuery脚本运行一次?这是我的代码。
我的代码
$(document).ready(function(){
//setup a counter to keep our place and cache a selection to the letter wrappers
var counter = 0,
$chars = $(".test").children();
//setup an interval to animate a letter every so often
setInterval(function () {
//select the current letter wrapper and animate it
$chars.eq(counter).effect( "bounce", {times:1}, 500 );
//increment the counter so we animate the next letter next time around
counter++;
//check if the counter still relates to an index of the $chars collection
if (counter >= $chars.length) {
counter = 0;
}
}, 250);
});
查看我的fiddle
当我的if playing_song
的iframe正在加载时,我需要它运行一次脚本。它可以在任何一点。
我尝试过的事情。
我尝试过使用.ready
,但显然它只会在它准备就绪时显示,而不是在它加载时显示。
我想要做的是用动画制作一个div,它超越了静态div。但它无法动态更改,因为iframe可以在任何时候加载。此方法仅在已刷新的父级时才有效。
我之后
我想要的代码是在加载iframe playing_song
时运行一次,这可能会在任何时候发生,并且不止一次。
有关如何实现这一目标的任何建议吗?
答案 0 :(得分:1)
你应该能够用普通的javascript做到这一点。 考虑一下这个html:
<div class="test">
<span>M</span>
<span>u</span>
<span>s</span>
<span>i</span>
<span>f</span>
<span>y</span>
</div>
<iframe id="foo" href="https://youtube.com" width="300" height="250"></iframe>
然后你就可以使用这个javascript做一些事情&#39;#foo&#39;开始加载:
var frame_to_load = document.getElementById("foo");
frame_to_load.onload = function() {
// your js here
}
或使用jquery:
$('#foo').on('load', function() {
// your js here
});
如果您有权访问iframe,也可以在iframe中的$(document).load(function(){...});
内运行js。
希望这有帮助。
答案 1 :(得分:0)
使用$(document).load
访问当前iframe中的加载事件