在 jquery 的帮助下将事件附加到动态内容
我有 4 行的表,当我单击任何行时,就会在我单击的行之后添加一个新行。在这里我给出我的代码只是为了展示我如何用 jquery 实现它。
我的 jquery 在我单击的行之后添加了一个新行。
$(document).ready(function () {
$("table#Table1 tr").click(function () {
var $tr = $(this).closest('tr');
var myRow = ($tr.index() + (++counter));
$(this).after("<tr ><td>" + myRow + ") </td><td><img src='Images/closelabel.png' id='imgExpandCollapse' alt='ABC' style='cursor:pointer'/></td><td>Name : New one</td><td>Desig : CEO</td></tr>");
});
});
问题是我正在使用 jquery 添加新行,但单击事件未附加新行。因此,请指导我将点击事件附加到新行的最佳方法。
i have table with 4 rows and when i click on any row then a new is getting added just after row where i clicked. here i am giving my code just to show how i achieve it with jquery.
my jquery by which i adding a new row just after the row where i clicked.
$(document).ready(function () {
$("table#Table1 tr").click(function () {
var $tr = $(this).closest('tr');
var myRow = ($tr.index() + (++counter));
$(this).after("<tr ><td>" + myRow + ") </td><td><img src='Images/closelabel.png' id='imgExpandCollapse' alt='ABC' style='cursor:pointer'/></td><td>Name : New one</td><td>Desig : CEO</td></tr>");
});
});
the problem is that i am adding new row with jquery but click event is not getting attach with new. so please guide me for the best approach to attach click event with new row.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您想使用 .live(..) 绑定事件。这将允许动态生成的 DOM 元素使用相同的事件。
You want to use .live(..) to bind the event. This will allow dynamically generated DOM elements to use the same event.
尝试 $.fn.delegate
http://api.jquery.com/delegate/
Try $.fn.delegate
http://api.jquery.com/delegate/
尝试将 - 更改
为
这应该确保 jQuery 将单击事件绑定到所有表行,包括动态创建的行。
工作演示 - http://jsfiddle.net/w5Atk/
Try changing -
to
That should ensure jQuery binds the click event to all table rows, including those that are created dynamically.
Working demo - http://jsfiddle.net/w5Atk/