抱歉愚蠢的问题。我早就在这里遇到了一些答案,但现在我找不到了。 我有(例如):
<div id="div1">
<div id="move">
1
</div>
</div>
<div id="div2">
</div>
将#move
的父级从#div1
更改为#div2
的正确方法是什么,而不会丢失我绑定到#move
的任何内容(例如.click()
绑定其他东西)?
示例代码:
$('#move').animate({ //hide
width: 'toggle',
height: 'toggle',
}, 1000, function() {
$('#div2').prepend($(this)); //move (when animation finished)
$(this).animate({ //show again
width: 'toggle',
height: 'toggle',
}, 1000);
});
这似乎有效,但我不知道我是否做得对,(例如我不会从旧父手动中删除$(this)
。可能jQuery会为我做,因为我没有当我使用浏览器调试器时,在旧地方看到该节点。)
答案 0 :(得分:1)
你做的是正确的,你不必在某处添加div,然后删除原来的... jQuery会为你移动div。实际上,如果要复制,必须使用clone()函数。
因此prepend,append,after,insert等函数将移动div,并在DOM周围附加所有内容。我很确定它还能保持点击绑定...