2011-10-23 28 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をいただき、ありがとうございます)asynchronistically動作します。

義務を果たすためにそれ自身の時間がかかる意味。

非同期モードを有効にして、データが正しいことを確認できます。

ので、同様:

jQuery.ajaxSetup({async:false}); 

、その後jQuery.get(...)を使用して、あなたのAJAX呼び出しを行います。その後、ちょうど

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

たら、それを再度オンに

ありがとうございましたが、変数「katcheckは」「K」でないときの$に.get()クエリも解雇されるべきではありませんので、どのようにこの問題を解決しません? – Cletus

+0

あなたのコメントから、あなたの問題が解決したかどうかはわかりません。しかし、頻繁に起こることは、非同期モードが変数の変化を隠すことである。これは大きなバグの「バグ」です。断続的に発生すると悪化することもあります。 (私は変数名を変更してスペルを修正しましたが、あなたは気にしないことを願っています) – Sydwell

+0

あなたの以前のコードは問題を解決できませんでした。後で新しいものが戻ってきて助けてくれたら教えてもらえますが、そのバグについて知っているといいです。それが理由であるとは思わないでしょう。 – Cletus

関連する問題