0

我正在尝试将颜色框应用于演示页面上的某些链接,并使用 $(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.,经过进一步检查,发现元素在触发时没有加载。

4

5 回答 5

1

确保在运行上述脚本之前链接到包含颜色框的脚本。

于 2012-05-10T14:30:35.523 回答
0

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

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

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

KJM

于 2012-05-11T02:37:17.120 回答
0

如果您使用的是 JQuery 1.8.0,它可能是一个已知的错误;请参阅 < http://bugs.jquery.com/ticket/12282 >。声称现在已修复。

于 2013-02-05T02:13:16.900 回答
0

将上面的代码移到正文部分而不是头部部分的结束标记附近。

于 2012-05-10T14:25:09.207 回答
0

把你的函数放在窗口加载函数之间

$(window).load(function(){
    //function here
});
于 2012-05-10T14:36:08.860 回答