Hy伙计们,希望你们能帮忙。
我有一个非常简单的jQuery隐藏函数,它正在工作,但InTheRom在一夜之间出现了一些错误,现在已经不存在了。实际上,我试图在一些SWF加载时添加一个可见的"耐心"警告。
这是我在<head>
部分的电话。。。
<script type="text/javascript" src="js/jquery-1.6.1.js"></script>
<script type="text/javascript">
function hidden() {
$('.patience').hide();
};
window.onload=hidden;
</script>
这是它影响的阶级。。。
<p class="patience">Please be patient, the interactive book below and the PDF links may take a while to fully load.</p>
以及相关联的CSS。。。
.patience {
visibility: visible;
background-color: #CCC;
border: 1px solid #000;
margin-right: 10px;
margin-left: 10px;
}
有什么想法吗?为什么它在整个主权财富基金加载后都不隐藏?
谢谢。R
如果你有问题,我会切换到:
$(document).ready(function () {
$(window).load(function () {
$('.patience').hide();
});
});
这可能有助于一切正常初始化。
我不确定我是否理解主权财富基金是如何关联的。。。也许你的意思是说swf_elem.onload
或其他什么而不是window.onload
?
首先将window.onload=hidden;
更改为$(function(){hidden();});
我建议的新方法是使用jQuery的document ready
版本,它确保您可能想要影响的元素已加载并可以使用。
此外,我在您的代码中没有看到任何将hidden()
函数连接到任何SWF加载的内容
请参见Fiddle:http://jsfiddle.net/maniator/XX8ym/
首先-window.onload
是放置此处理程序的正确位置-与$(document).ready()
不同,它将等待所有子帧、图像等加载完毕。
我不知道window.onload
是否也会等待SWF对象被加载。
如果没有等待SWF,那么效果将是.patience
div也会提前消失,因为页面的其余部分将已加载完毕。
它确实在等待,但您的div根本没有消失,这表明您在实际JS代码中的某个地方出现了一个小错误,导致无法调用.hide()
。
既然您已经说过div不会消失,我建议您已经遇到了后一个问题,在这种情况下,使用JS调试器几分钟应该会发现(并非双关语)问题。
可能是您的jQuery加载失败。此外,在使用jQuery时,请使用jQuery的$.ready而不是window.onload,以确保在尝试做任何事情之前,所有事情都处于平静状态!
我的愚蠢错误!
我给你看的代码没有错,但我发现我在打电话头中的<script type="text/javascript" src="js/jquery-1.6.1.js"></script>
,并且我的服务器上只存在"js/jquery-1.6.1.min.js"脚本。
现在感觉很愚蠢,但感谢所有做出贡献的人。
干杯Rog