私はPHPのファイルからdivに返されるHTMLをロードするための関数を持っています。 htmlがdivに配置されると、divを表示するcolorboxのjquery関数を呼び出すようにします。私が持っている問題は、HTMLが実際にdivに配置される前にコールバックが実行されるということです。 htmlが実際にPHPの実行を終了したときとは対照的にdivに完全に配置されたときにjqueryに関数を実行させる方法はありますか?JQuery:.load()の新しいhtmlの挿入が完了したら、呼び出しを実行しますか?
関数は次のようになります...
function viewDetails(vinNum){
$('#detailsContainer').load('/actions/myfile.php?var='+myVar,function(){
$(".example3").colorbox({transition:"elastic", speed:"100", inline:true, href:"#hiddenModalContentbox"});
});
}
問題は、それが実際にdiv要素の中にHTMLを入れて終了する前にコールバックが呼び出されていることです。これは、mysqlが必要とするデータを与えるのを待っている間に、phpがいくつかのhtmlを出力することによって引き起こされる可能性がありますか?もしそうなら、私はすべてのデータを取得し、一度にすべてのhtmlをエコーする必要がありますか?
EDIT: これは私が同じ結果で、今試してみたものです。私はまた、ロードされているPHPファイルにjavascriptアラートを追加しました。カラーボックスがコールバックによって呼び出された後、警告が呼び出されます。 FINAL
function viewDetails(myVar) {
$.ajax({
url: '/actions/myfile.php',
data: 'var=' + myVar,
success: function(html) {
$('#detailsContainer').html(html);
},
complete: function(){
$(".example3").colorbox({transition:"elastic", speed:"100", inline:true, href:"#hiddenModalContentbox"});
}
});
}
編集:私はカラーボックスは最初から不正に呼び出されていたことを発見しました。私は他の人からコードの一部を継承しましたが、それは正しく設定されていると思いました。私がしなければならなかったのは、( ".example3")クラス呼び出しを取り除くことだけでした。そのクラス呼び出しは、そのクラスを持つリンクにメソッドを添付し、コールバックが終了する前にそのメソッドを呼び出します。すべてのコールバックは、そのクラスのアイテムにcolorboxメソッドを再度割り当てます。すべての私の話はおそらく、泥のように物事をはっきりとさせますが、入力の皆様に感謝します。ここに最終的に働く電話があります...
http://docs.jquery.com/Tutorials:Introducing_$(document:
がロードされたコンテンツは、実際にDOMに追加された後load()
のコールバックが実際に発射実証するために、ここに小さなデモです).ready() – sdolgyあなたのステートメントは間違っています、htmlが実際にターゲット要素に置かれているときにコールバックが発生します。http://jsfiddle.net/3ZAQB/1/ロードされたコンテンツの背後にあるテクノロジはAT ALL 。 jQueryはPHPかどうか、そしてスクリプトにMySQL接続があるかどうかは気にしません。表示されるのはHTMLを配信するURLだけです。また、HTMLが提供されると、PHPが生成を完了したことを意味します。配信に10秒かかることがあります。コールバックはこれらの10秒後に起動します(+それを追加するのに数マイクロ秒かかります)。 – Capsule
sdology - ドキュメントの準備ができています。問題は、私はページ全体を読み込んでいない、私はPHPからHTMLの塊を読み込んでいます。私の知る限り、その目的のために準備が整った書類の申請はありません。 – LoneWolfPR