Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在JQuery中创建动态创建元素的事件_Javascript_Jquery_Html - Fatal编程技术网

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

Javascript 在JQuery中创建动态创建元素的事件,javascript,jquery,html,Javascript,Jquery,Html,我有表元素 <table class="ActionMenu" id="tblActionMenu" cellpadding="3" cellspacing="3" > $('.ActionMenu tr').click(function (e) { alert("abcd"); }); 这很有效 $('.ActionMenu tr').click(function (e) { alert("abcd"

我有表元素

<table class="ActionMenu" id="tblActionMenu" cellpadding="3" cellspacing="3" >
 $('.ActionMenu tr').click(function (e) {
                alert("abcd");
     });
这很有效

 $('.ActionMenu tr').click(function (e) {
                alert("abcd");
     });
现在,我使用javascript添加了一个表,该表具有相同的class=“ActionMenu”,但单击tr它就不起作用了

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

如何在单击事件动态创建的表时获取消息可能,当您定义函数时,新的表还不存在。因此,假设您使用的是最新的jQuery版本(1.7.x),请使用事件委派并在公共父级(例如
body
元素)上捕获事件

 $('.ActionMenu tr').click(function (e) {
                alert("abcd");
     });
您必须使用“live”功能。。。如果您使用“委托”功能,效果会更好

 $('.ActionMenu tr').click(function (e) {
                alert("abcd");
     });
它的工作原理如下:

 $('.ActionMenu tr').click(function (e) {
                alert("abcd");
     });
$('.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

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

查看上的委派事件示例

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

你是如何创建这个表的?您能给我们看一些源代码吗?
live()
方法已被弃用(除非您必须使用较旧的jQuery版本),谢谢您的提示Calderan。我仍在学习jQuery,不知道live()已被弃用。无论如何,我都会使用delegate()!