为什么我从jquery生成的按钮没有事件?

为什么我从jquery生成的按钮没有事件?

  
 $('#pop').on('click', function(){ var clone = $('input[id*=btn]').clone(); $(this).after(clone); }); $('#btn').on('click', function(){ alert('clicked'); }); 

小提琴

应用事件侦听器后,您将创建克隆按钮。 当clone()元素只有克隆的DOM结构时,事件不是。

用户事件委派或简单地将true传递给clone()函数以使其克隆事件(根据规范 )

 $('#pop').on('click', function(){ var clone = $('input[id*=btn]').clone(true); // < pass true here $(this).after(clone); }); 

演示: http : //jsfiddle.net/rvhhv8sf/3/

PS Id必须是唯一的;)

Id应该是唯一的。 所以把你的id btn改成了课堂。 使用event-delegation 。 试试这个:

 $(document).on('click','.btn', function(){ alert('clicked'); }); 

DEMO

试试这个:

 $(document).on('click', "#btn", function(){ alert('clicked'); }); 

你复制的id是错误的,只是重复的类。

   $(document).on('click','.btn',function(){ alert('clicked'); }); 

试试这个(根据你的问题):

 $(document).on('click','#btn',function(){ alert('clicked'); }); 

编辑:

小提琴链接: – http://jsfiddle.net/nLkvejss/