在页面加载完成之前使colorbox正常工作

时间:2011-08-15 12:31:23

标签: jquery colorbox loaded

我在HEAD页面中有以下代码:

    <script  type="text/javascript">        
$(document).ready(function(){
    $(".open_popup_clips").colorbox({width:"520px",height:"480px", iframe:true});       
});
</script>  

因此,弹出窗口只有在页面完成加载后才能正确打开,然后再进行加载 将以常规方式打开浏览器窗口中的链接 是一种在页面完全加载之前弹出链接的方法。我尝试将这段代码放在BODY中,但这不起作用。
当然,最好的办法是加快加载过程,但现在就把它放在一边。

thanx任何重播并祝你有愉快的一天: - )

2 个答案:

答案 0 :(得分:1)

这里有两个选择:

一,将您的JavaScript代码放在您身体的BOTTOM上,而不是document.ready。这将比document.ready绑定更快。

两,将您的JavaScript代码放在您正在调用colorbox的元素下方。这有点混乱,但是在将元素添加到DOM之后会立即调用它并且是您最快的选择。

对于这类事情来说,这些是你唯一的选择,就像准备事件更快。

如果你想冒险进入scaryville,请查看:http://javascriptisawesome.blogspot.com/2011/07/faster-than-jquerydocumentready-wait.html说实话,我之前没有尝试过。

答案 1 :(得分:1)

Adam的回答通常是很好的建议,但它不会对当前版本的colorbox有所帮助,因为它在将标记添加到文档之前等待DOM加载。为了更快地运行它(比如,在你想要使用colorbox的元素之后立即运行),你将不得不对jquery.colorbox.js文件做一个小的编辑。像这样注释掉以下行:

// $(publicMethod.init);

然后在准备初始化colorbox时手动调用init()。例如:

<a href='1.jpg' class='example'>1</a>
<a href='2.jpg' class='example'>2</a>
<a href='3.jpg' class='example'>3</a>
<script>
  $.colorbox.init();
  $('a.example').colorbox();
</script>