1

ajaxStart イベントと ajaxStop イベントをトリガーして is-loading メッセージを表示しようとしていますが、これを行う方法についてかなり混乱しています。私が理解しているように、これらのイベントは ajax イベントごとにトリガーされますが、それが正確に何を意味するのかはまだわかりません。href リンクまたは送信ボタンをクリックすると、ajax イベントもトリガーされますか? ハイパーリンクまたはボタンをクリックしたときに、以下のコードのアラートのいずれも表示されないためではないようです。私はJQueryの学習を始めたばかりで、おそらく何かが欠けていることが明らかです。

誰かがこれを機能させる方法を説明できますか?

私はこれを私の<head>タグに持っています

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js" type="text/javascript"></script>

<body>そして、これは開始タグの直前に:

<script language="JavaScript" type="text/javascript">

// prepare the form when the DOM is ready 
$(document).ready(function() { 
$(document).ajaxStart(function() {
    alert('ajaxStart');
    $('#ajaxBusy').show(); 
});
$(document).ajaxStop(function() {
    alert('ajaxStop');
    $('#ajaxBusy').hide(); 
});

</script>

編集: href リンクをクリックして読み込みポップアップを表示し、ajaxStart イベントをトリガーしたい。リンク呼び出しは、ロードにかなりの時間がかかる別のページであり、その間にロード メッセージを表示したいと考えています。

<a href="http://www.mysite.com/long-loading-page.php">link</a> 

ajaxイベントでこれを行うにはどうすればよいですか?

4

2 に答える 2

4

AJAXイベントを発生させるには、AJAXリクエストを開始する必要があります

つまり$.ajax、、、、$.getなど$.postです$.load

リンクやボタンをクリックしても効果はありません。ただし、要素clickごとに独自のハンドラーを登録して、要求されたURLを取得し、その新しいコンテンツでDOMを更新するようにすることができます。ただし、これは「初心者のjQuery」としてはカウントされません。a$.load

より良い解決策は、新しいページを使用するdocument.writeか、ページの読み込み時にポップアップを表示し、完了したら削除することです。

于 2012-09-20T13:08:03.107 に答える
0

ajaxStartおよびajaxStopは、AJAXリクエストが行われるたびにトリガーされるjQueryイベントです。ここを読んでください:http: //api.jquery.com/ajaxStart/jQueryには優れたドキュメントがあります。

リンクまたは送信ボタンをクリックすると、ブラウザはAJAXリクエストを開始せずに新しいページをロードするだけです。

于 2012-09-20T13:16:39.357 に答える