我对Javascript一般来说比较陌生,我拼凑了一些来自本网站大部分内容的小脚本,试图获得一个小的iframe通过一系列的链接循环播放,它的表现非常出色。不过,我也希望它在用户点击iframe或其任何内容时停止骑车。Javascript - JQuery - clearInterval/setInterval - iframe循环不会停止点击
这是我到目前为止的代码。 HTML页面上只有一个iframe。
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript" charset="utf-8">
<!--
var sites = [
"side/html5.html",
"side/silverlight.html",
"side/wordpress.html",
"side/mysql.html",
"side/php.html",
"side/css3.html"
];
var currentSite = sites.length;
var timerId;
var iframeDoc = $("iframe").contents().get(0);
$(document).ready(function()
{
var $iframe = $("iframe").attr("src","side/html5.html");
timerId = setInterval(function()
{
(currentSite == 0) ? currentSite = sites.length - 1 : currentSite = currentSite -1;
$iframe.attr("src",sites[currentSite]);
}, 4000);
$(iframeDoc).bind('click', function()
{
clearInterval(timerId);
});
});
//-->
</script>
</head>
<body>
<sidebar>
<iframe name="sideframe" src="side/html5.html"></iframe>
</sidebar> ..etc..
请帮帮忙,我想学习JavaScript一样快,我可以,但就我所看到的,它应该工作,但它确实没有。
感谢您给我提供的任何帮助,非常感谢。
编辑:
好吧,我已经有了一个新的脚本现在,大多是基于关闭Elias的工作,但它也不管用。我已经将它固定在Firebug中,它的意思是说timerCallback.currentSite的值是正确更新的,尽管我找不到$ iframe的src值来明确地检查它。据我所知,它正在更新变量,它只是不正确地更新iframe。我是否在此代码中正确调用/设置iframe?此外,链接在jquery库足够我的目的?我有点失去了所有的这些库链接到的......
<script type="text/javascript" src="http://code.jquery.com/jquery.js"></script>
<script type="text/javascript" charset="utf-8">
<!--
var sites =
[
"side/html5.html",
"side/silverlight.html",
"side/wordpress.html",
"side/mysql.html",
"side/php.html",
"side/css3.html"
];
var $iframe = $("iframe").attr("src","side/html5.html");
function timerCallback()
{
timerCallback.currentSite = (timerCallback.currentSite ? timerCallback.currentSite : sites.length) -1;
$iframe.attr("src",sites[timerCallback.currentSite]);
$($('iframe').contents().get('body')).ready(function()
{
$(this).unbind('click').bind('click',function()
{
var theWindow = (window.location !== window.parent.location ? window.parent : window);
theWindow.clearInterval(theWindow.timerId);
});
});
}
var timerId = setInterval(timerCallback, 4000);
//-->
</script>
当用户将鼠标悬停在iframe上时,如何暂停它? – 2012-04-20 11:17:41
'$('iframe')'位不起作用,它将返回一个1(或更多,取决于页面上iframe的数量)的数组。对不起,但它是伪代码。尝试使用'$('iframe')[0]'或给iFrame一个id,并使用id选择器'$('#iFrameId')' – 2012-04-20 13:54:49
我试过了你的建议和'$('#sideframe') '并且'$('iframe')[0]是未定义的',因为错误(对其他人也是如此)。完整的:'var $ iframe = $('iframe')[0] .attr(“src”,“side/html5.html”);' - 我会把这个在线并让你看到它的行动。编辑:见http://www.gandcdesign.co.uk/ – 2012-04-20 14:36:08