ログインフォーム(AJAX)を有効にしていました。使用がリンクをクリックすると、そのログインボックスはフローティングモーダルとして表示されます。そのログインボックスのコンテンツは、jQueryの$()。load関数を使用して別のページから読み込まれます。リンクをクリックすると、ログインボックスが読み込まれます。しかし、私はそのフォームに提出するAJAXを実装する場合:
$(document).ready(function(){
$("form#loginbox").submit(function(e){ e.preventDefault(); /*AJAX function here*/ });
});
しかし、フォームが正常に送信され、関数の中で与えられているものを、次ずに、それは( - 提出とAJAXを使用してデフォルトを防ぐ)です。つまり、ロードされたコンテンツはDOM内では認識されないか、スクリプトはそれを読み取れません。私は一度だけコンテンツをロード:
$(document).ready(function(){
if($("#loadedform").html() == "")
{ $(this).load('/load/login.html'); }
$(".login-modal').slideDown('slow');
});
構造:
<div class="login-modal"><div id="loadedform"></div></div>
コンテンツをロードする:
<form id="loginbox" method="post" action="xyz.html">
<!-- INPUT Boxes and Submit Button -->
</form>
イベントハンドラをバインドする静的要素として 'document'を使用することはお勧めできません。そのようなハンドラが多すぎるとパフォーマンスが低下するためです。これがjQueryが '.live()'から離れた主な理由です。代わりに、静的な要素に動的に追加されたコンテンツにずっと近づけておくことを推奨します。詳細については、[.on() 'のドキュメント](http://api.jquery.com/on/)のEvent Performanceセクションを参照してください。 – GregL
@ GregL、リチャードDであるかもしれません、あなたのコメントも読んでください。 – Starx