2016-05-19 7 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; 
    } 

クラスlinkClassだとlinkClass2はちょうど、セルの背景色を変更しています。何か案は?

+1

にいくつかのクリックを実行するため、あなたは$("#b1").click(function(){から出$("td").click(function(){を移動する必要があります「それは奇妙に振舞う」よりも説明的です。 – Pointy

+0

よく2回目にボタンを押して、5つのセルをクリックします。「10回のクリック」pops.The 3回目のクリックでもポップします。 –

答えて

1

ボタンをクリックしたときにtdに1回のより多くのクリックをバインドするたびにそう、それはあなたがもう少しできれば、人々が問題を理解する助けとなる1時間

+0

私は新しい関数を作成し、そこにコードを移動する必要がありますか?はいの場合はどうすればいいですか? @Alator。 –

+0

いいえ、彼らは同じレベルにあるべきです。次のようになります: '$("#b1 ")。click(function(){...}); $( "td")click(function(){...}); ' –

+0

しかし、彼らは同じレベルにありますか?これらの多くの質問はすごく新しいです。(サンプルを投稿してもらえますか?) –