2012-05-07 110 views
1

我有表元素创建的动态事件创建的元素的JQuery

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

约翰

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

这个伟大的工程。

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

我怎样才能动态创建的表

+0

你怎么创建表?你能告诉我们一些来源吗? – amaters

回答

3

上点击事件的消息也许,您在定义函数的新表中还不存在。因此,假如你正在使用最新版本的jQuery(1.7.x)使用​​事件代表团和捕捉一个共同的父事件(例如body元素)

$('body').on("click", ".ActionMenu tr", function (e) { 
     alert("abcd"); 
}); 
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的更多信息,或让我知道如果你需要更多的帮助。祝你好运!

+1

'live()'方法已被弃用(除非您必须使用较旧的jQuery版本) – fcalderan

+0

感谢您的提示Calderan。我仍然在学习jQuery,不知道live()已被弃用。无论如何,我会使用委托()。 – rafaelbiten

0

退房例如在授权事件的http://api.jquery.com/on/

$('#tblActionMenu').on("click", "tr", function(){ 
    //do something 
});