2016-08-25 3 views
0

私はAJAXイベントの成功フックでこのコードを持っている:

success: function (data) { 
    $(loadTarget).html(data.details); 
    $.colorbox.resize(); 
} 

loadTarget既にオープンカラーボックスではdiv要素です。

問題は、$ .html()が非同期であるかのように、カラーボックスのサイズが正しく調整されないことがあることです。

Resizing colorbox after loading HTML content into a DIV Ajaxのコールバックの仕事は何とか不思議に思っていますが、これに責任がありますが、$ .html()がAjaxコールバックにも含まれているとすれば、その理由を理解できません。

なぜそれを修正するのですか?

答えて

0

画像の問題が判明しました。

$.html() imgタグが挿入されたばかりで、画像がロードされる前に$.colorbox.resize()が発生しました。 (既知の場合)ことをのimgするheightプロパティを設定するjqueryのロードフック

  • を使用して

    1. を修正する2つの方法を見つけ

  • 0

    は、リクエストが成功した場合 https://api.jquery.com/Ajax_Events/

    success (Local Event) 
    

    このイベントはのみ呼び出され、このリンクを参照してください(サーバからのエラーなし、データがエラーなし)。

    これは、ajaxリクエストが成功した場合に成功関数が実際に呼び出されることを意味します。つまり、他の機能や操作によってデータが使用または処理されない可能性があります。

    あなたのこのような動作が原因である可能性があります。

    +0

    私の問題は、そのサイズ変更が正しく行われたコンテンツの変化に対応しませんですajax呼び出しでajaxが失敗した場合、変更はなく、サイズ変更の必要はありません。 –

    +0

    シナリオをよりよく理解するためにjsFiddleを作成できますか? –

    関連する問題