我正在開發一個登錄表單(AJAX)。當用戶點擊鏈接時,該登錄框將顯示爲浮動模式。該登錄框的內容使用jQuery的$()。load函數從另一個頁面加載。單擊登錄框加載的鏈接。但是,當我實現AJAX提交該表格上:
$(document).ready(function(){
$("form#loginbox").submit(function(e){ e.preventDefault(); /*AJAX function here*/ });
});
但形式提交正常,沒有什麼之後在函數給出,即(阻止默認 - 提交併使用AJAX)。那麼這是否意味着Loaded內容不被考慮在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/)的文檔中的事件性能部分。 – GregL 2012-03-23 08:49:18
@GregL,可能是Richard D,也需要閱讀你的評論。 – Starx 2012-03-23 08:53:12