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()!