求一段js撤销操作返回到某事件之前状态的代码
如果在点按一个按钮激发某事件后,可能发现做错了,这时如果能提供一个撤销按钮,返回到事件之前的状态该如何呢?跪求高手帮忙。
比如在一个div块中有一个table,可能用js在前端做了许多修改添加等工作,但当点按某按钮时可能又会执行一段js,在执行这段js之前,我想做一个备份工作,就是保留div块中所有内容(这些内容是js动态加上的,而不是网页原有的),当撤销时,能把它又原样调出来。
新建网页 31 |
------解决方案--------------------
可以使用$.data()方法来实现啊,
比如
do undo当点击do 时 table 添加一行,在点击之前缓存table对象,
$("#do1").click(function(){
var index = $(this).data("index");
index = index ? index + 1 : 0; //记录次数
$(this).data("index",index);
var table = $("#div1").children("talbe");
$(this).data(“table”+index,table.clone(true) ); //缓存拷贝对象
table .append("
");});
//回退
$("#undo1").click(function(){
var index = $("#do1").data("index");
if (!index) {
return;
}
$("#div1").empty().append($("#do1").data(“table”+index)); //重新加载缓存的对象
$(“#do1”).data(“table”+index,"").data("index",index - 1); //把已经回退的对象清空,计数减一,
});
如果只需要回退最开始,就不需要计数就是了。
------解决方案--------------------
笨一点的方法 你可以先隐藏一个div内容就是原本div内容 最后你撤销的时候把隐藏的div内容在复制给现在div 你可以试试