我正在开发一个登录表单(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