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

Это поможет людям понять этот вопрос, если вы могли бы быть немного больше чем «он ведет себя странно». – Pointy

+0

ну во второй раз я нажимаю кнопку, чтобы начать, и я нажимаю на 5 ячеек сообщение «Десятикратные клики». В третий раз он появляется еще меньше кликов. –

ответ

1

Вы должны двигаться $("td").click(function(){ из $("#b1").click(function(){, потому что каждый раз, когда вы нажимаете кнопку вы связать еще один щелчок по td поэтому он выполняет несколько кликов в одно время

+0

Должен ли я создать новую функцию и переместить код там? Если да, как мне это назвать? –

+0

@Alator. Нет, они просто должны быть на одном уровне. Например: '$ (" # b1 "). Click (function() {...}); $ ("td"). click (function() {...}); ' –

+0

, но они на одном уровне, не так ли? извините за эти многие вопросы им только новые для всех этих. (может у, пожалуйста, отправьте образец?) –

Смежные вопросы