Jquery 如何撤消更改?

Jquery 如何撤消更改?,jquery,twitter-bootstrap,Jquery,Twitter Bootstrap,我正在为孩子们制作一个教育游戏,但我有一个大问题。 这是第一级: <div class="row" id="one"> <div class="col-md-12"> <div class="col-md-3"> <img src="img/ananas.png" class="img-responsive dimenzii"> <h3 class="drop1"

我正在为孩子们制作一个教育游戏,但我有一个大问题。 这是第一级:

    <div class="row" id="one">
    <div class="col-md-12">
        <div class="col-md-3">
            <img src="img/ananas.png" class="img-responsive dimenzii">
            <h3 class="drop1" id="drop1">______________</h3>
        </div>
        <div class="col-md-3">
            <h1 class="green" id="dr2">Кокос</h1>
        </div>
        <div class="col-md-3">
            <h1 class="green" id="dr1">Ананас</h1>
        </div>
        <div class="col-md-3">
                <img src="img/coconut.png" class="img-responsive dimenzii">
               <h3 class="drop2" id="drop2">______________</h3>
        </div>


    </div>
</div>

有人能告诉我如何保存初始条件以便以后使用吗?

您可以在开始之前将初始状态保存为变量。如果级别不是太大,可以使用jQuery来复制它,但实际上不要将它放入DOM中。当你准备重置游戏时,你可以用它来销毁DOM上的游戏,并用保存的初始状态副本替换它

var initialState=$(levelId).clone();
//做一些可以修改关卡的事情
$(levelId).replaceWith(initialState);

谢谢您的回答,这对我帮助很大。这很有效,但只适用于视图。现在的设计与第一次播放关卡时的设计相同,但功能不同。我正在使用可拖动和可拖放的插件,现在,在这个克隆功能之后,当级别开始时,没有任何功能。页面是静态的。你知道是什么引起的吗?如果你所说的功能是指事件(如
$(“#begin”)。单击(…)
),你可以不直接附加到DOM对象的方式来编写这些事件。您可以编写
$(文档)。在(“click”、“#begin”、function(){…})
上,如果单击的元素与选择器匹配,则只要在页面上注册了单击事件,就会运行该事件(在本例中为
#begin
).我已经试过了,它适用于按钮,但我需要它适用于可拖放功能,因为大多数事件都是可拖放事件。。我说的是Dropable插件$(“#drop”)的默认函数;如果我改变这个,那它就根本不起作用了。如果我不改变它,那么第一次玩关卡就可以了,下一次,什么都不会发生。啊。看起来
clone
有两个选项可以使用事件进行克隆
.clone(true)
将使用数据和事件进行克隆,
.clone(true,true)
将使用数据和事件进行深度克隆。您可以切换到使用
.clone(true,true)
作为初始状态。如果需要,您可以恢复到旧代码
。单击(…)
而不是
。打开(“单击”…)
,但是
上的
可能有一些优点,比如内存占用少一点(虽然对于这个项目来说可能可以忽略不计)。我现在一直在尝试,但没有任何变化。我已经用.clone(true)和.clone(true,true)尝试过了,但是什么都没有发生。
    $("#begin,#Yes").click(function(){
    $("#begin").hide();

    game.play();
    points = 0;
    $("#stazi").show();
    $("#final, #one,#two,#three,#four,#five,#six,#seven,#eight").hide();
    $("#one").show();
    $("#poeni").html(points);
    $(".drop1,.drop2").html("_____________");
    $("#dr1,#dr2").show();
    setTimeout( function(){

            game.pause();
            $("#stazi").fadeOut(1000);
            $("#finalPoints").html(points);

            $("#final").delay(1000).fadeIn(2000);
            win.play();

        }
        , 60000 );


});