$(document).ready()函数在文档实际加载到IE之前触发,有什么方法可以修复它吗?

时间:2012-05-10 14:20:11

标签: jquery internet-explorer colorbox

我正在尝试将colorbox应用于演示文稿页面上的某些链接,我使用$(document).ready()来设置它。问题是我定义的函数在元素实际加载之前触发(在实际加载任何内容之前)。以下脚本位于文件头部分的末尾。

echo '
<script>
var $j = jQuery.noConflict();
$j(document).ready(function(){
';

while($descr = mysql_fetch_array($res_descr)) {         

    echo '
    try {
    $j(".fer_'.$descr['SectiunePagina'].'").colorbox({inline:true, width:"70%", height:"60%", href:"#fer_'.$descr['SectiunePagina'].'"});
    }
    catch(error) {
    alert(error.message);
    }
    ';
}                      
echo '
});
</script> 
';

error.message为Object doesn't support property or method colorbox.,经过进一步检查后发现元素在触发时未加载。

5 个答案:

答案 0 :(得分:1)

确保在运行上述脚本之前链接了包含colorbox的脚本。

答案 1 :(得分:0)

将上面的代码移动到靠近body标记的end-tag而不是head section。

答案 2 :(得分:0)

将您的功能置于窗口加载功能

之间
$(window).load(function(){
    //function here
});

答案 3 :(得分:0)

这与脚本的定位没有多大关系。这是一个时间问题。

ColorBox依赖于正在加载其内容的DOM 来正常运行。这是其设计的基本部分。

在调用 Colorbox之前,您必须弄清楚如何将想要ColorBox用于DOM 的内容加载到中。看起来你正在查询数据库的内容;这将是你必须完成beore你称之为ColorBox。也许有一个回调函数可以作为db调用的一部分使用。

KJM

答案 4 :(得分:0)

如果您使用的是JQuery 1.8.0,则可能是一个已知错误;见&lt; http://bugs.jquery.com/ticket/12282&gt;。声称现在已经修复。