2013-04-30 68 views
1

ocanal名稱的成員足以幫助我編寫JQuery函數(您可以在這裏查看jsFiddle:http://jsfiddle.net/JMqxq/5/),但我現在想修改它。我能夠成功修改它,以便當您正確猜測顏色時,「級別」會遞增1並正確顯示。我遇到的問題是,它有一種'重置',以便一旦你猜出正確的顏色,以前的不正確的框不會消失,隨機數發生器已經選擇了一個新的正確的顏色供您猜測。任何想法我怎麼能做到這一點?這裏是一個特定的功能,我想修改:修改JQuery以重置函數

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

感謝您的幫助。

回答

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

+0

謝謝!正確的猜測不會改變。我應該複製並過去「temp = Math.floor((Math.random()* 6)+1);」進入正確的()?還是有更好的辦法呢? – Brett 2013-04-30 21:52:19

+1

你最好在我認爲正確的函數結束時調用rand()。 – Jalayn 2013-04-30 21:54:26

+0

聽起來不錯。謝謝您的幫助! – Brett 2013-04-30 21:56:05

0

看看jsFiddle的更新jsFiddle

我做了一個修改,添加了一個reset()函數,並在正確的()函數調用之後調用它。

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."); 
}