1

次の 2 つの div を含むページがあります。

<div id="searchResults">
</div>

<div class="postSearchOptions" style="display: none;">
</div>

「searchResults」div が AJAX 呼び出しによって更新されたときに、「postSearchOptions」div を表示させる方法はありますか? 私は AJAX 呼び出しを制御しておらず、「searchResults」div の変更を検出したいと考えています。

次の JQuery コードを書いてみましたが、Jquery 1.4 が必要で、1.3 しか持っていないことに気付きました。

$("#searchResults").live("change", function() {
    $(".postSearchOptions").css("display", "inline");
});

標準の JavaScript または Jquery 1.3 を使用して、searchResults div の変更のイベントをキャッチする方法はありますか? ありがとう!

4

4 に答える 4

1

aJAX呼び出しがjQueryを使用して行われる場合、グローバルajaxCompleteイベントを処理する呼び出しを呼び出し、そこでコードを実行できます。

于 2010-04-14T14:44:44.200 に答える
0

setInterval を使用して監視することもできますが、他の人が言っているように、ajax コールバックの変更を検出する方が良いでしょう。ライブでやろうとしているように、プラグインがノードを「監視」する様子のスケッチを次に示します。

jQuery.fn.watch = function() {
  this.each(function() {
    var original = $(this).html();
    setInterval(function() {
       var newHtml = $(this).html();
       if (newHtml != original) {
         $(this).trigger('change');
         original = newHtml;
       }

    }, 500);

  } );
}
于 2010-04-14T14:51:54.897 に答える
0

プログラムでinnerHTMLを変更している場合、onchangeイベントは発生しないと思います。これらの変更を受け取ったときにポスト検索オプションを表示しないのはなぜですか。つまり、それを ajax 成功メソッドの最後の行として含めないのはなぜですか。

HTH

于 2010-04-14T14:42:39.547 に答える