$(document).ready() 函数在文档实际加载到 IE 中之前触发,任何修复它的方法



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

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> 
';

错误消息Object doesn't support property or method colorbox.,经过进一步检查,发现触发时未加载元素。

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

将代码移动到靠近正文部分而不是头部部分的结束标记的位置。

将函数放在窗口加载函数之间

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

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

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

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

金缇

如果您使用的是 JQuery 1.8.0,则它可能是一个已知的错误;请参阅。 索赔现已修复。

最新更新