0

サーバーDisplay.php、t2.php、およびupdate.phpに3つのファイルをアップロードしたドラッグアンドドロップモジュールを実装しようとしています:

t2.php はhttp://www.script.iblogger.org/と同じですが、ここではドラッグ アンド ドロップは問題なく機能しますが、t2.php の内容を display.php ( http://www.script. iblogger.org/display.php ) ajax 呼び出しを介して document.ready 関数が起動しない場合、どんな助けも大歓迎です。前もって感謝します! 編集:これをどのように変更すればよいですか?

display.php の AJAX 呼び出し関数:

    function showSubjects(str)
    {
    if (str=="")
      {
      document.getElementById("teacher-row").innerHTML="";
      return;
      } 
    if (window.XMLHttpRequest)
      {
      xmlhttp=new XMLHttpRequest();
      }
    else
      {
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
    xmlhttp.onreadystatechange=function()
      {
      if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
        document.getElementById("teacher-row").innerHTML=xmlhttp.responseText;
        }
      }
    xmlhttp.open("GET","t2.php?s="+str,true);
    xmlhttp.send();

    }

t2.phpのドキュメント準備機能: (ドキュメント準備は ajax 呼び出しでは機能しないため)

    $(document).ready(function(){...});
4

2 に答える 2

1

コンテンツが ajax によってロードされた場合、document.readyは起動しません。 、 などのイベントを使用する必要がsuccessありますcompletedoneajax イベントの詳細については、こちらを参照してください。

ドキュメント準備完了

JavaScript は、ページのレンダリング時にコードを実行するためのロード イベントを提供します。このイベントは、画像などのすべてのアセットが完全に受信されるまでトリガーされません。ほとんどの場合、スクリプトは DOM 階層が完全に構築されるとすぐに実行できます。.ready() に渡されたハンドラーは、DOM の準備が整った後に実行されることが保証されているため、これは通常、他のすべてのイベント ハンドラーをアタッチして他の jQuery コードを実行するのに最適な場所です。CSS スタイル プロパティの値に依存するスクリプトを使用する場合は、スクリプトを参照する前に、外部のスタイルシートを参照するか、スタイル要素を埋め込むことが重要です

于 2013-07-27T07:38:01.343 に答える