我正在尝试将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.
,经过进一步检查后发现元素在触发时未加载。
答案 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;。声称现在已经修复。