2

「index.php」ページで、ユーザーから sth を取得し、「ajax.php」を使用して div で応答します。ajax page は、ページと呼ばれる div に分割された順序付きリストを返します。ajax が読み込まれた後、ページの css プロパティを設定する関数を実行する必要があります。ボタンの onClick イベントにアタッチすると、関数の準備が整い、正常に動作します。しかし、ajaxページがロードされた後に自動的に実行したい。私は試した:

  1. ページ上部とページ下部の index.php と ajax.php にも onload イベントがあります --> 動作しません
  2. function in function showAjax(){...setCSS();}--> ajaxページ全体がロードされた後、実行に失敗しました
  3. コールバック関数 --> 正しく動作しない
  4. そのような onClick イベント onClick="showAjax(); setCSS();" --> 動作しません

私はjQueryを使用しません。同様の問題解決方法を調べましたが、うまくいきません。このトラブルから私を救ってくれる人に感謝します。ありがとう

追加されたコード:

var xmlHttp;

function loadXMLDoc(url,cfunc) {
    if (window.XMLHttpRequest) {
        xmlHttp=new XMLHttpRequest();
    } 
    else {
        xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
    } 
    xmlHttp.onreadystatechange=cfunc; 
    xmlHttp.open("GET",url,true); 
    xmlHttp.send();
}

function showAjax(x) { 
    loadXMLDoc("ajax.php?obj="+x,function() {
       if (xmlHttp.readyState==4 && xmlHttp.status==200) {
          document.getElementById("sonuclar").innerHTML=xmlHttp.responseText;
       }
    });
}
4

2 に答える 2

0

私は問題を解決しました。"if(xmlHttp.readyState == 4 && xmlHttp.status == 200)"このステートメントは、ajaxが完全にロードされたかどうかをすでに制御しています。そこで、setCSS関数をコールバックとしてshowAjax関数に追加します

`関数showAjax(x、func){

loadXMLDoc("ajax.php?obj="+x,function() {

   if (xmlHttp.readyState==4 && xmlHttp.status==200) {

      document.getElementById("sonuclar").innerHTML=xmlHttp.responseText;

      func();

   }

});

}

onclick = showAjax(this.value、setCSS); '

于 2012-10-23T12:42:49.313 に答える
-1

独自の ajax を使用している場合は、私が作成したこのサイトを見てください: CV Onlineで、私の httpreq.js、関数 OnStateChange を確認してください。これは、ajax リクエストが成功したかどうかに関係なく終了したときに呼び出されます。このスクリプトが役立つかどうか教えてください。

于 2012-10-21T17:55:16.210 に答える