2011-07-05 359 views
0

我遇到了問題。當我的GET完全完成時,我想要做一些事情,因爲我需要將BG放在中間。此功能完全適用於調整大小,但是當我加載圖像onClick時,這不起作用。任何方式來避免這一個?

例子:

getBG.php返回<img id="bgImage" src="123.jpg" />

問題:

它將無法正確計算變量a,因爲我認爲這是試圖做的是圖像之前甚至加載。當圖像完全加載時,它可以正常工作。

$.get("getBg.php", { 
      img: (this).id 
     }, 
     function(data){ 
      $("#bg").html(data); 
      var a = $("#bgImage").height() - $(window).height(); 
      $("#bgImage").css("margin-top", - a/2); 
     }); 
+1

很難理解你在問什麼......回調函數在ajax調用完成時運行。什麼不起作用? – Fosco

回答

1

您需要直接掛鉤新圖像的加載事件。 我假設#bgImage的元素是圖像,這可能是你想要的。

$.get("getBg.php", { 
      img: (this).id 
     }, 
     function(data){ 
      $("#bg").html(data); 
      $("#bgImage").load(function() { 
       var a = $(this).height() - $(window).height(); 
       $(this).css("margin-top", - a/2); 
      } 
     }); 
+0

奇怪的是,這並不能解決問題。如果我添加警報(「測試」);它正在顯示它,但圖像仍然沒有放在中間......等等。它適用於FF和IE,但不適用於Chrome ...:| – sed

0

你需要使用setTimeout循環,直到$("#bgImage").height()大於零。

相關問題