обновить предупреждение и счетчик после нажатия - PullRequest
0 голосов
/ 02 марта 2019

Я создал функцию, которая печатает предупреждение после нажатия на ячейку таблицы.Предупреждение состоит из счетчика.У меня это работает, когда количество увеличивается, когда ячейка таблицы innerHTML изменяется на определенное значение, и уменьшается, когда ячейка таблицы изменяется на другое значение innerHTML.Однако новое значение счетчика, похоже, не сохраняет после увеличения / уменьшения и повторяет тот же процесс снова, увеличивая и уменьшая новое значение счетчика.

Есть ли способ сохранить новое значение счетчика и обновить оповещение после будущих событий

$(function() {
  $('td').click(function() {
    var x = $(this).html();
    var y = 1;
    if (x == "a") {
      y += 1;
      alert("New Value: " + y);
    } else if (x == "b") {
      y -= 1;
      alert("New Value: " + y);
    }
  })
})
  <html>
  <body>
  <table >
  <tr>
  <td  onclick="this.innerHTML ='a';">1</td>
  <td  onclick="this.innerHTML ='b';">2</td>
  <td  onclick="this.innerHTML ='a';">1</td>
  </tr>
   </table>

   </body>
  </html>

Ответы [ 2 ]

0 голосов
/ 02 марта 2019

Вы должны объявить y как глобальную переменную.Я получил ваш код для работы со следующим фрагментом.

var y = 1; // Global

$(function() {
  $('td').click(function() {
    var x = $(this).html();
    if (x == "a") {
      y += 1;
      alert("New Value: " + y);
    } else if (x == "b") {
      y -= 1;
      alert("New Value: " + y);
    }
  })
})
.cell-button{
  width: 50px;
  height: 30px;
  margin: 5px;
  background-color: #ff000088;
}
<script type="text/javascript" src="https://code.jquery.com/jquery-3.3.1.min.js"></script>

<table>
	<tr>
		<td class="cell-button">a</td>
		<td class="cell-button">b</td>
	</tr>
</table>
0 голосов
/ 02 марта 2019

Вы можете обновить счетчик при нажатии кнопки, используя код ниже.То, что вы делаете в своем коде, это каждый раз, когда нажимается кнопка, вы переопределяете y (что, я полагаю, является вашим счетчиком), выполняя var y = 1;.Если вы хотите сохранить, удалите эту строку.

var counter = 0;

$(".click").click(function() {
  counter++;
  console.log(counter);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button class="click">Click</button>

Примечание. Если вы хотите, чтобы этот ответ работал для вашего кода, обновите свой пост, добавив HTML-код, и оставьте комментарий к этому ответу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...