1

一个名为 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;
 }

谢谢你的帮助。

4

2 回答 2

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;
}

我已经更新了你的小提琴

于 2013-04-30T21:41:56.757 回答
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.");
}
于 2013-04-30T21:57:04.143 回答