1

JQuery Load Function で更新するクラスがいくつかあります。ページが最初に読み込まれるときに、それらをターゲットにして、次のように非表示にします。

$('.classname').hide();

私は次のloadようにajaxを行います:

$.ajax({  
  type: "GET",  
  url: "index.php",  
  data: dataString,  
  success: function() {  
      $('.wrapperClass').load('index.php .wrapperClass');
      $('.classname').hide();
  },
      error: function() {

      }  
});

簡単に言うと、html は次のようになります。

<div class="wrapperClass">
    <span class="classname">Content 1</span>
    <span class="classname">Content 2</span>
</div>

問題は、wrapperClassget 内のすべてが正常にリロードされますが、内部のスパンが非表示にならず、再表示され、Ajax 経由でリロードされた後にそれらを非表示にする方法がわかりません。

4

2 に答える 2

5

おそらく(\はず)ご存知のように、loadはajaxリクエストであるため、要素を非表示にしようとすると要素が読み込まれません。

読み込まれたコンテンツを処理するコードを完全なコールバックに移動します。

success: function() {  
      $('.wrapperClass').load('index.php .wrapperClass', function(){
              $('.classname').hide();              
          });
      }

完全なコード:

$.ajax({
    type: "GET",
    url: "index.php",
    data: dataString,
    success: function() {
        $('.wrapperClass').load('index.php .wrapperClass', function() {
            $('.classname').hide();
        });
    },
    error: function() {

    }
});​

load ドキュメント:

.load( url [, data] [, complete(responseText, textStatus, XMLHttpRequest)])

  • urlリクエストの送信先 URL を含む文字列。
  • dataリクエストとともにサーバーに送信されるマップまたは文字列。
  • complete(responseText, textStatus, XMLHttpRequest) リクエストが完了したときに実行されるコールバック関数。
于 2012-04-09T20:18:23.120 に答える
1

$('.classname').hide();のコールバック関数に固執する必要があります.load()。現在、要素がページに存在する前に要素を非表示にしようとしています。これを試して:

$.ajax({  
  type: "GET",  
  url: "index.php",  
  data: dataString,  
  success: function() {  
      $('.wrapperClass').load('index.php .wrapperClass', function() {$('.classname').hide();});
  },
      error: function() {

      }  
});
于 2012-04-09T20:21:13.780 に答える