为什么我从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/