我正在尝试将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,则它可能是一个已知的错误;请参阅。 索赔现已修复。