我无法在元素I上触发事件克隆/插入到DOM。
检查小提琴here。
HTML:
<div class="A">[THIS IS DIV A]</div>
<div class="B">CLICK TO CLONE DIV A</div>
jQuery的:
$('.A').on("click",null,function() {
alert('DIV A CLICK');
});
$('.B').on("click",null,function() {
$('.A').clone().insertAfter('.A');
});
如果我点击克隆的DIV A
,则没有任何反应。
如何在克隆元素上触发事件?
答案 0 :(得分:7)
我建议有两种解决方案。
首先,在这种情况下更好的选择是将true
参数添加到clone()
,例如在这种情况下它将是:
$('.A').clone(true).insertAfter('.A');
clone()
的第一个参数代表:
“布尔值,指示是否应复制事件处理程序和数据 以及元素。默认值为false。“ - jQuery API section for clone()。
这意味着所有绑定事件都将保留在每个克隆元素上。
第二个选项,可能不是这个例子的方法,是使用on()
的事件委托功能:
“委托事件的优势在于它们可以处理来自的事件 稍后添加到文档中的后代元素。“ - jQuery API section for on()。
在这种情况下:
$(document).on("click", ".A", function() { ...
现在,每个具有类.A
的新元素都会附加此click事件,甚至是克隆元素。