2016-05-19 145 views
0

昨天我開始爲我在網上找到的一些隨機練習編寫代碼。我的任務是創建一個空的HTML表格,當用戶按下一個特定的按鈕時,它會將單元格的顏色更改爲相反的顏色(綠色或紅色)並更改(添加或減少1)其值。在10個單元點擊之後,它應該用平均值和其他一些東西來提醒消息。第一次點擊按鈕,一切正常。但是,對於後續點擊,其行爲很奇怪。下面是一些代碼Javascript(jQuery)給了我奇怪的結果

//..... 
var n=0; 
$("#b1").click(function(){ 
    document.getElementById("b1").disabled = true; 
    $("td").removeClass(); 
    for (var i=0; i<25; i++) 
    { 
     var z=$("td").eq(i) 
     z.text(Math.floor((Math.random() * 10))) 
     if (z.text()<5) 
     { 
      z.addClass("linkClass") 
     } 
     else 
     { 
      z.addClass("linkClass2") 
     } 
    } 
    $("td").click(function(){ 
    n++; 
    if ($(this).hasClass("linkClass")) 
    { 
     $(this).removeClass() 
     $(this).text(parseInt($(this).text())-1); 
     $(this).addClass("linkClass2") 
    } 
    else 
    { 
     $(this).removeClass() 
     $(this).text(parseInt($(this).text())+1); 
     $(this).addClass("linkClass") 
    } 
    if (n==10) 
    { 
     alert("Ten times clicked"); 
     document.getElementById("b1").disabled = false; 
     n=0; 
    } 

linkClasslinkClass2只是改變細胞的背景顏色。有任何想法嗎?

+1

這將幫助人們理解這個問題,如果你能多一點描述性而不是「表現奇怪」。 – Pointy

+0

以及第二次我按下按鈕開始,我點擊5個單元格的消息'十次點擊'彈出。第三次它彈出更少的點擊。 –

回答

1

你應該將$("td").click(function(){出從$("#b1").click(function(){因爲每次當你點擊綁定多一個點擊td按鍵使其在一個時間進行幾次點擊

+0

我應該創建一個新的函數並將代碼移到那裏?如果是,我應該怎麼稱呼它? –

+0

@Alator。不,他們只是應該在同一水平上。像:'$(「#b1」)。click(function(){...}); $(「td」)。click(function(){...});' –

+0

但它們在同一層上不是嗎?對於這些很多問題感到抱歉,我剛剛對所有這些問題都有所瞭解(可以請您發佈一個樣本嗎?) –