JS UNDO DOM修改

时间:2013-10-11 14:00:10

标签: javascript jquery dom

是否可以撤消上一次DOM修改?

我试图通过

记住状态
undoArray = [ $("#container").clone() ];

//some situation when dom changed and remember state
undoArray.push( $('#container').clone() );

然后,如果需要,从此数组中恢复#container内容,但它会丢失直接附加到元素的所有事件。

2 个答案:

答案 0 :(得分:3)

true传递给.clone()以保存事件和数据。

undoArray = [ $("#container").clone(true) ];

.clone()的文档

如果您要销毁数组中的项目而不将其放入DOM中,请记住清理数据。

答案 1 :(得分:1)

如果您想要保留事件,请通过true clone() withDataAndEvents

  $("#container").clone(true)

或使用 on() 附加到document

  $(document).on('eventName','targetSelector', eventHandler);