jQuery – on(’click’)append似乎不起作用

http://jsfiddle.net/D6be5/

HTML

jQuery的

 $(document).ready(function() { $(this).on('click', function(event) { if ( ! $(event.target).closest('table').hasClass('example')) { $('table label').show(); $('table textarea').hide(); } }); $('table td').on('click', function() { $('table label').show(); $('table textarea').hide(); $(this).find('label').hide(); $(this).find('textarea').show(); }); $('#add-row').on('click', function() { _this = $('table tr.clone') .clone() .removeClass('clone') .insertBefore('.clone'); _this.append(''); }); });​ 

CSS

 table textarea { display: none; } table .clone { display: none; }​ 

上面的链接解释了我正在尝试做什么。

基本上问题是这个。 我在td中有一个标签textareatextarea是隐藏的,只有标签在开始时显示。 当用户点击表格的单元格时,它会隐藏标签并显示textarea ,它会正常工作,直到您尝试添加该行的克隆然后它不会执行任何操作。

编辑 :忘了提到为什么我克隆行并在之后添加单元格。 在我的实际代码中,我也允许创建列,我会对行进行计数并添加单元格。

非常感谢您的任何帮助=)

另一种方法。

 $('table').on('click', "td", function() { }) 

将点击处理程序更改为

 $(document).on('click', 'table td', function() { //Your code } 

希望它可以帮助你

 $('.example').delegate('td', "click", function() { } 

您可能想尝试在$('table td').click()上使用.on()方法.on() $('table td').click()事件:

 $('table td').on('click', function() { $('table label').show(); $('table textarea').hide(); $(this).find('label').hide(); $(this).find('textarea').show(); }); 

希望有所帮助