Как повторить classchange в html таблицах - PullRequest
1 голос
/ 03 марта 2020

Я хотел бы redo classchange в html таблицах.

undo метод реализован pop. Но я сомневаюсь, что есть какой-либо способ redo it.

Мой желаемый результат - когда я нажимаю кнопку undo, redo, classchange будет redo ando undo

Есть ли какой-нибудь полезный метод для redo it?

Спасибо

$(function() {
  let clicked = [];
  $("td").click(function() {
    let clickedID = $(this).attr('id');
    clicked.push(clickedID);
    $(this).addClass("aqua");
  });
  $("#undo").on('click',() => {
    if(clicked.length) {
      let lastClicked = clicked.pop();
      $(`td#${lastClicked}`).removeClass("aqua");
    }
  })
});
.aqua{
  background-color: aqua;
}


td {
  padding: 5px
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table>
  <td id="1">1</td>
  <td id="2">2</td>
  <td id="3">3</td>
  <td id="4">4</td>
  <td id="5">5</td>
  <td id="6">6</td>
  <td id="7">7</td>
  <td id="8">8</td>
  <td id="9">9</td>
  <td id="10">10</td>
</table>

<button id="undo">undo</button>
<button id="redo">redo</button>

1 Ответ

2 голосов
/ 03 марта 2020

Все, что вам нужно сделать, это изменить порядок выполнения, отслеживая то, что вы делаете с помощью кнопок redo и undo, я думаю, это то, что вы хотите:

$(function() {
  let clicked = [];
  let redoClicked = [];
  $("td").click(function() {
    let clickedID = $(this).attr('id');
    clicked.push(clickedID);
    $(this).addClass("aqua");
  });
  $("#undo").on('click',() => {
    if(clicked.length) {
      let lastClicked = clicked.pop();
      redoClicked.push(lastClicked);
      $(`td#${lastClicked}`).removeClass("aqua");
    }
  })
  $("#redo").on('click',() => {
    if(redoClicked.length) {
      let lastClicked = redoClicked.pop();
      clicked.push(lastClicked);
      $(`td#${lastClicked}`).addClass("aqua");
    }
  })
});
.aqua{
  background-color: aqua;
}


td {
  padding: 5px
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table>
  <td id="1">1</td>
  <td id="2">2</td>
  <td id="3">3</td>
  <td id="4">4</td>
  <td id="5">5</td>
  <td id="6">6</td>
  <td id="7">7</td>
  <td id="8">8</td>
  <td id="9">9</td>
  <td id="10">10</td>
</table>

<button id="undo">undo</button>
<button id="redo">redo</button>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...