我正在努力解决我所拥有的issue并决定尝试.load()
jQuery函数的事件处理程序。我不确定我做错了什么。 jQuery page上的示例是:
$('#book').load(function() {
// Handler for .load() called.
});
我的剧本是:
var $j = jQuery.noConflict();
$j('#gallery-nav-instruct').load(function() {
if(!$j.cookie('gallerycookie')){
$j.colorbox({ inline:true, href:"#gallery-nav-instruct"});
$j.cookie("gallerycookie", 1, {expires: 30, path: '/'});
}
});
为什么我的脚本不起作用?
以下是与该脚本相关的HTML:
<div style="display:none">
<div id="gallery-nav-instruct">
<h2>Gallery Navigation Instructions - Step 1</h2>
<h2 style="text-align:right">
<a style="text-align:right;" class="inline cw" href="#gallery-enlarge-instruct">Step 2</a>
</h2>
<p> </p>
<p class="white">
<img src="/Images/Pages/gallery-navigation.jpg" width="890" height="450" alt="Gallery Navigation Instructions" />
</p>
</div>
</div>
答案 0 :(得分:1)
您是否有办法在事件发生时确认div尚未加载?换句话说,这可能是一个时间问题。加载完成后,事件被绑定,但事件永远不会被触发,因为负载已经完成。
我很想知道你要解决的问题;而不是解决.load()本身的问题(尽管这可能最终成为工具!)最好留出横向思维的空间。例如,我不明白为什么你不能在文件准备好的情况下进行cookie检查和颜色盒初始化。可能是图像尚未加载,但我认为这不会破坏用户体验。
答案 1 :(得分:0)
尝试将您的脚本放在页面的末尾。那可能有用。只有当所有内容都被加载时它才会执行,因为当完全加载父内部的所有内容时调用.load()事件。
This应该帮助你