2016-12-22 11 views
0

2つの文書準備完了イベントがあります。2番目の文書のJQueryが正常に動作しない

私のWPのショートによって挿入されたページ(HTMLフォームを挿入するPOSTリクエストを作業)、上、まず:JSファイルに

<script type="text/javascript" > 
    jQuery(document).ready(function($) { 
     jQuery.post(
      ajaxUrl, 
      { 
       action: 'action', 
       nonce: 'nonce' 
      }, 
      function(response) { 
       $('#place').removeClass('preloader'); 
       $('#place').html(response); 
      } 
     ); 
    }); 
</script> 

セカンド(私はページへの最初のコードを追加するまで、それが働いていました)、フッターにロードされます:

jQuery(document).ready(function($) { 
    $('#myform').submit(function(e) { 
     e.preventDefault(); 
/* some ajax call with form data*/ 
    }); 
}); 

2番目の準備完了イベントは起動しましたが、$('#myform').submitは機能しません。 私を助けることができますか?

+0

2番目のものをデバッグすると、 '$( '#myform')'は何も返さないと思います。 –

+0

かもしれません。 idがmyformのフォームは、最初のイベントで投稿によって挿入されます。だから、2番目のjsがロードされるときに 'myform'がドキュメントにない...これを解決するには? – DocSS

+0

依存関係が存在するので、 '$( '#place').html(response);'の後に '$( '#myform')。submit()を置くことは意味があります。 –

答えて

0

document.ready関数を使用するのはベストプラクティスではありません。必要なすべてのdom要素の後にフッターレベルにスクリプトを含めると、ドキュメントと要素の残りの部分がロードされた後にスクリプトが実行され、ドキュメント対応機能が不要になります。

関数で何をやっているのか、それらがどのようにやりとりできるかは不明ですが、一方を変更する場合は、必要な要素が得られていることを確認してください。テストするには、開発者のコ​​ンソールをブラウザで開いて、javascriptコードをコピーして貼り付けて、動作しているかどうかを確認してください。コンソールにjavascriptを入力し、ブラウザにロードされたDOMでリアルタイムに実行することができます。

+0

しかし、デベロッパーコンソールでは、すべての要素が既に読み込まれています。 – DocSS

+0

はい、DOMがロードされた後で、ページの下部にスクリプトを含めることが重要です。また、2番目の関数が最初の関数に依存する場合は、最初の関数が完了した後に呼び出します。文書を準備する必要はありません –

関連する問題