2011-10-23 60 views
1

我想實現一個jQuery滾動功能到我的頁面上,當滾動到頁面底部時,只在用戶處於特定類別時在div上附加更多數據。jQuery滾動功能無法識別變量的變化

類別更改是在變量「katcheck」上進行的。追加應該只發生在katcheck ==「k」之後。但是滾動函數一旦被觸發,將不會聽取變量的變化。換句話說:當katcheck被更改爲其他內容時,滾動功能仍將katcheck保存爲「k」。

這裏是代碼片段:

var $start=8; 
var $length=2; 
$contentLoadTriggered = false; 

$(window).scroll(function() { 
    if($(window).scrollTop() >= ($("#full-page-container").height() - $(window).height()) && $contentLoadTriggered == false && katcheck == "k") 
    { 
    alert(katcheck); 
     $contentLoadTriggered = true; 

     $.get('getgallery_by_kat2.php', { k_id:1, st:$start, ln:$length }, function(data) { 

      $(data).hide().appendTo(".imgmain").fadeIn();   
      $contentLoadTriggered = false; 
      $start=$start+2; $("div#descri").hide();  
     }); 
    } 
}); 

我怎樣才能使滾動功能識別變量的變化?我向函數中加入的警告證明,即使所有其他函數都能識別出該更改,滾動功能也不會。

謝謝

回答

1

ajax查詢$ .get()以異步方式運行。

這意味着需要花時間完成它的職責。

您可以通過轉動異步模式來確保它具有正確的數據。

像這樣:

jQuery.ajaxSetup({async:false}); 

,然後進行使用jQuery.get(...)你的Ajax調用;

然後就再重新開啓一次

jQuery.ajaxSetup({async:true}); 
+0

謝謝你,但,這如何解決這個問題,因爲$獲得()查詢甚至不應該被解僱當變量「katcheck」不是「K」 ? – Cletus

+0

我不確定您的評論是否解決了您的問題。但是經常發生的情況是異步模式會掩蓋可變的變化。這是一個大問題「bug」,有時在間歇發生時會更糟糕。 (順便說一下,我改變了變量名稱並修正了一些拼寫,我希望你不要介意。 – Sydwell

+0

你之前的代碼並沒有解決我的問題,行爲沒有什麼不同。由於我在atm工作,我會嘗試然後再回來,讓你知道它是否有幫助,但是很好的瞭解這個bug,永遠不會想到這個原因,以後會回來並回復,謝謝! – Cletus