当我使用$ .get()检索html时,html包含输入,textarea等表单字段。我希望将更改,粘贴和按键事件附加到这些控件,但这些事件不会被触发。 jQuery文档指出,在使用$ .get()检索html之前,至少有一个控件需要出现在html中。或者,您可以使用不需要任何控件的文档元素,但这会产生重大性能问题,因此在调用ajax之前,我会在页面上放置一个隐藏控件。这是我的HTML:
<div id="divAdminContent">
<form id="frmAdmin">
<input type="text" style="display:none" />
</form>
</div>
以下是我如何附加“on”:
$("#frmAdmin :input").on("change paste keypress", function (e)
{
// Do something...
});
答案 0 :(得分:5)
您需要event delegation使用on(),当您的事件绑定代码执行时,您尝试绑定事件的元素不存在。
$("#frmAdmin").on("change paste keypress", ":input", function (e)
{
// Do something...
});
委派活动
委派事件的优势在于它们可以处理来自的事件 稍后添加到文档中的后代元素。通过 选择一个保证在当时存在的元素 委托事件处理程序附加,您可以使用委托事件 避免经常附加和删除事件处理程序,jQuery doc