在JQuery中创建动态创建元素的事件

时间:2012-05-07 12:50:00

标签: javascript jquery html

我有表格元素

<table class="ActionMenu" id="tblActionMenu" cellpadding="3" cellspacing="3" >

约翰              

 $('.ActionMenu tr').click(function (e) {
                alert("abcd");
     });

这很有效。

现在使用javascript我添加了具有相同class =“ActionMenu”的表,但是点击tr它不起作用。

如何获取动态创建表上的Message on事件表

3 个答案:

答案 0 :(得分:3)

可能在定义函数时,新表还不存在。因此,假设您正在使用最新的jQuery版本(1.7.x),请使用事件委派并在公共父级上捕获事件(例如body元素)

 $('body').on("click", ".ActionMenu tr", function (e) {
      alert("abcd");
 });

答案 1 :(得分:0)

你必须使用“实时”功能......如果你使用“委托”功能,那就更好了。

它的工作原理如下:

$('.someClass').live('click',function(){}); //adds 'click evt' to every future .someClass inside the DOM

$('#someID').delegate('.someClass','click',function(){}); //adds 'click evt' to every future .someClass inside #someID

搜索jQuery api以获取更多信息,或者如果您需要更多帮助,请告诉我们。祝你好运!

答案 2 :(得分:0)

查看有关http://api.jquery.com/on/

上的委派活动的示例
$('#tblActionMenu').on("click", "tr", function(){
   //do something
});