修改JQuery以重置功能

时间:2013-04-30 21:37:47

标签: jquery

ocanal这个名字的成员很好,可以帮我写一个JQuery函数(你可以在这里查看jsFiddle:http://jsfiddle.net/JMqxq/5/),但我现在想要修改它。我能够成功修改它,以便在您正确猜出颜色时,“级别”增加1并正确显示。我遇到的问题就是让它“重置”,这样一旦你猜出正确的颜色,之前不正确的盒子就不再淡出,随机数生成器选择了一个新的正确颜色供你猜测。知道我怎么能这样做吗?这是我想要修改的特定功能:

temp = Math.floor((Math.random()*6)+1);
  $("div.box").click(function() {
      if (temp == $(this).data("id")) {
          correct();
      } else {
          $(this).animate({"opacity": "0.25"}, "slow");
          incorrect();
      }
  });

如果您需要,还可以在正确猜测时调用该函数:

 function correct(){
  document.getElementById("result").innerHTML = "You are correct!";
  level++;
  document.getElementById("level").innerHTML = level;
 }

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

correct函数中,您需要将每个框设置为不透明度为1,如下所示:

$(".box").animate({"opacity": "1"}, "slow");

该功能是:

function correct(){
  $("#result").html("You are correct!");
    level++;
  $(".box").animate({"opacity": "1"}, "slow");
  document.getElementById("level").innerHTML = level;
}

我已更新您的fiddle

答案 1 :(得分:0)

查看jsFiddle更新的jsFiddle

我做了一个更改,添加了一个reset()函数,并在correct()函数调用之后调用它。

window.onload = init;
var temp = 0;
var level = 1;
function init(){
  rand();
 }

function rand(){
  temp = Math.floor((Math.random()*6)+1);
  $("div.box").click(function() {
      if (temp == $(this).data("id")) {
          correct();
          reset();
      } else {
          $(this).animate({"opacity": "0.25"}, "slow");
          incorrect();
      }
  });
}

function reset(){
    $(".box").each( function () {
        $(this).animate({"opacity": "1.0"}, "slow");
    });
}

function correct(){
  $("#result").html("You are correct!");
    level++;
  document.getElementById("level").innerHTML = level;
}

function incorrect(){
  $("#result").html("Sorry, you are incorrect.");
}