3

現在、ajaxStart/Stop に問題があります。入力ボックスに 4 桁を入力すると、AJAX 呼び出しが実行され (この入力ボックスが変更され、数字が 4 の場合)、ローダーが正しく表示されます。

ユーザーが既にページを送信し、このページに再度アクセスすると、数字が事前に入力され、ページの読み込み時に ajax 呼び出しが実行されます。これは機能しますが、ローダーは表示されません。

ドキュメントの準備ができたら ajaxStart/Stop を呼び出します。

$('document').ready(function () {
    $('#spin').ajaxStart(function () {
        startSpinner();
    });
    $('#spin').ajaxStop(function () {
        stopSpinner();
    });
});

そして、ajax 呼び出しを実行する関数は、ドキュメントの準備が整っていません。

<script type="text/javascript">
    function fillStreets(postalcode, textfield, selectfield, validationfield, init, copy) {
   PERFORM AJAX CALL HERE
}
</script>

推測はありますか?私はすでに $(document).ajaxStart などを使用しようとしましたが、うまくいきませんでした。startSpinner() と stopSpinner() は document.ready の前に宣言されているため、これも問題ではありません。

ありがとう!

4

2 に答える 2

0

基本的に、AJAX を呼び出すインライン コードは $(document).ready() コードの前に実行されるため、ローダーが表示されません。問題は、なぜインライン コードがあるのか​​ということです。ページの開始時に発生するコードはすべて、 document.ready() ハンドラーにある必要があります。これにより、説明した問題も修正されるはずです。

「ページの読み込み時に ajax 呼び出しが実行される」と言うとき、このコードはインラインであり、onload ハンドラーではないと想定しています。ただし、onload ハンドラーにある場合でも、なぜ ready ハンドラーにもないのか疑問に思います。

于 2012-08-02T21:20:34.043 に答える