2012-02-23 11 views
1

これに似た質問がありましたが、私の状況には答えが見つかりませんでした。私は、次のように動作するjQueryを使って簡単なモーダルポップアッププラグインを作成しました: $('#popup').popupElement("http://www.example.com #somediv");jqueryで外部ソースから情報をロードした後にdivの高さと幅を取得する

セレクタ#popupをクリックすると別のWebサイトからdivがロードされます。クリック機能は、次のようになります。

  $(thisObj).click(function(e){ 
      e.preventDefault(); 
      $("#popupDiv").load(div); 
      centerPopup(); 
      loadPopup(); 
     }); 

それはpopupDivに外部のdivをロードするときに問題があり、popupDivの高さと幅が0であるため、CenterPOPUP機能は()右のそれを中央にすることはできません。 #popupリンクを数回クリックすると、popupDivのディメンション自体が修正されます。 popupDivがcenterPopup()が呼び出される前に適切な次元に設定されるようにする方法はありますか?

答えて

0

load()のコールバック機能にcenterPopup()loadPopup()に電話をかけてみてください。これによりポップアップを表示する前にコンテンツがDOM内にあることが保証されます。つまり、高さと幅にアクセスできるようにする必要があります。試してみてください:

$(thisObj).click(function(e){ 
    e.preventDefault(); 
    $("#popupDiv").load(div, function() { 
     centerPopup(); 
     loadPopup(); 
    }); 
}); 
+0

それはそれです!なぜ私はそれを前に試してみませんでしたか?ありがとう! – Chris

0

centerPopup()を呼び出してshow()を呼び出す前に要素を非表示にしましたが、可視性を隠したままにしてから、width()とheight()をチェックして、

+0

それを試してみてください。うまくいきませんでした – Chris