克隆HTML元素,包括其关联的处理程序

moe*_*oey 2 html javascript jquery event-handling

我们可以复制/克隆HTML部分,包括附加到它的所有事件处理程序吗?

为简化概念,假设我有一个鼠标点击<div>触发器alert().我想复制它<div>以及与之关联的处理程序; 因此,点击后,复制品<div>也应该触发警报.我可以复制好,但处理程序似乎没有正确复制.这是jsFiddle示例.

谢谢.

Tad*_*eck 5

如文档中所述,只需true.clone()参数内提供:

.clone([withDataAndEvents] [,deepWithDataAndEvents])

withDataAndEventsA布尔值,指示是否应将事件处理程序和数据与元素一起复制.默认值为false.*在jQuery 1.5.0中,默认值不正确true; 它被改回false1.5.1及以上.

deepWithDataAndEventsA布尔值,指示是否应复制克隆元素的所有子项的事件处理程序和数据.默认情况下,其值与第一个参数的值(默认为false)匹配.

查看结果:http://jsfiddle.net/FdugW/

代码如下:

$(function() {
    $(".clickme").click(function() { alert("I am clicked!"); });

    $("a").click(function() {
        $("#clickme-1").clone(true).attr("id", "").appendTo("#container");
    });
});
Run Code Online (Sandbox Code Playgroud)