2016-05-19 105 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

但它们在同一层上不是吗?对于这些很多问题感到抱歉,我刚刚对所有这些问题都有所了解(可以请您发布一个样本吗?) –