如何使用jQuery动态地将行为附加到HTML中的动态加载元素

时间:2011-06-17 07:29:45

标签: jquery jquery-selectors

我有一个HTML表单动态附加到div元素。如何将现有行为附加到新添加的元素。

例如。我有像

这样的方法
$.fn.jqueryAjaxFormLoad - defined in jquery.ajaxload.js
$.fn.displayMessage  - defined in jquery.messagebar.js

已定义,在页面加载期间加载。现在我想要添加或使这些可用于新添加的表单元素及其子元素。使用jQuery实现这一目标的最佳方法是什么。

最终的期望是我可以打电话

$('。form_element')。displayMessage()在其中一个表单元素上。

3 个答案:

答案 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添加了新对象,也会触发事件。

http://api.jquery.com/live/

一个简单的例子是:

$('#foo').live('click', function() {
    // this will be called even if #foo is added minutes after the initial page load!
});