克隆后jQuery触发器不会触发

pat*_*ick 4 javascript jquery triggers clone

我的代码中有一个div,当我克隆它时,不会直接触发事件.这是代码;

<div id="draggable" onclick="alert(1);" class="ui-widget-content drag">
    <p>Drag me to my target</p>
</div>
<div id="here">
</div>

<script type="text/javascript">
    $("#draggable").clone().removeAttr("id").attr('id', 'draggable2').appendTo("#here");
    $("#draggable2").trigger('onclick');
</script>
Run Code Online (Sandbox Code Playgroud)

当我然后单击克隆元素时,它将正常触发事件.

如果我更改脚本让原始元素触发它也可以正常工作:

<script type="text/javascript">
    $("#draggable").clone().removeAttr("id").attr('id', 'draggable2').appendTo("#here");
    $("#draggable").trigger('onclick');
</script>
Run Code Online (Sandbox Code Playgroud)

绑定函数也可以正常工作:

<script type="text/javascript">
    $("#draggable").clone().removeAttr("id").attr('id', 'draggable2').appendTo("#here");
    $("#draggable2").bind('click', function () { alert('2'); });
    $("#draggable2").trigger('click');
</script>
Run Code Online (Sandbox Code Playgroud)

有没有人知道如何在克隆后直接触发克隆元素的"标准"onclick.

Fau*_*roy 20

要克隆元素及其事件,必须将"true"作为第一个参数传递.要传递其子项的事件,您还必须传递"true"作为其第二个参数

$myClone = $('#element').clone( true, true );
Run Code Online (Sandbox Code Playgroud)

http://api.jquery.com/clone/