2012-05-07 138 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 
});