0

プレゼンテーション ページのいくつかのリンクに 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> 
';

error.message はObject doesn't support property or method colorbox.あり、さらに調べたところ、起動時に要素がロードされていないことが判明しました。

4

5 に答える 5

0

ウィンドウロード関数の間に関数を配置します

$(window).load(function(){
    //function here
});
于 2012-05-10T14:36:08.860 に答える
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 に答える