我正在尝试克隆传递给函数的元素以及与其关联的所有事件,因为有 $('.example').on('click', function(e) .. . )}
文档中定义的此类事件已准备就绪。
所以我执行以下操作:
$('.example').on('click', function(e) {
e.preventDefault();
surpriseMe($(this));
});
我尝试在此处克隆此元素及其事件(我需要获取父元素,因为 .html()
仅返回内部 html,因此元素本身):
function surpriseMe(element) {
var newElement = element.parent().clone(true,true).html();
surprise.insertBefore(element.parent());
if (numElements == 3) {
newMonth = $('<li class="item-dragable-placeholder">'+ newElement +'</li>
}
}
我相信 .clone()
中的 true, true
应该强制父级也捕获它的子级事件,但是每当我点击新放置的元素时,什么都没有发生
最佳答案
使用事件委托(delegate)...
改变:
$('.example').on('click', function(e) { ...
收件人:
$(document).on('click', '.example', function(e) { ...
注意:不要使用文档
,而是找到页面加载时可用的最近的祖先元素(容器)并使用它。
关于javascript - 无法获取克隆元素以保留原始事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31251372/