我有一个HTML表单动态附加到div元素。如何将现有行为附加到新添加的元素。
例如。我有像
这样的方法$.fn.jqueryAjaxFormLoad - defined in jquery.ajaxload.js
$.fn.displayMessage - defined in jquery.messagebar.js
已定义,在页面加载期间加载。现在我想要添加或使这些可用于新添加的表单元素及其子元素。使用jQuery实现这一目标的最佳方法是什么。
最终的期望是我可以打电话
$('。form_element')。displayMessage()在其中一个表单元素上。
答案 0 :(得分:3)
您可以使用以下代码在点击元素时运行事件:
$("#something").click(function(){
alert("Something was clicked!");
});
只需将click
替换为您要使用的事件即可。您可以在this page找到活动列表。
如果您的活动不在上述链接的活动列表中,只需使用以下代码:
$("#something").bind("touchstart",function(){
alert("You tapped something!");
});
当用户点击移动设备上的屏幕时,上述代码将显示警告。 只需使用您需要使用的任何事件更改touchstart。
广告@米
答案 1 :(得分:1)
您可以使用jquery的delegate将处理程序绑定到动态添加的元素。
答案 2 :(得分:1)
使用jQuery的.live()
,您可以将事件处理程序绑定到对象上,即使通过AJAX添加了新对象,也会触发事件。
一个简单的例子是:
$('#foo').live('click', function() {
// this will be called even if #foo is added minutes after the initial page load!
});