繁体   English   中英

使用 JQuery 撤消最后一次单击按钮

[英]Undo the last click on button using JQuery

我有这样的代码 -

<button class="btn">New York</button>
<button class="btn">Amsterdam</button>
<button class="btn">New Jersey</button>
<button class="btn">Alabama</button>
<button class="btn">Michigan</button>
<button id="undo" class="undo-selection">Undo last selection</button>

并有下面的代码来检查这些按钮被点击的顺序。

var click = 0;
var buttons = document.querySelectorAll('button.btn');
buttons.forEach(button => {
  button.addEventListener('click', function(){
    var current = button.innerText;
    var existingClicks = current.split(" ");
    if(existingClicks.length > 1) {
      button.innerText += ` & ${++click}`;
    }
    else {
      button.innerText = `clicked = ${++click}`;
    }
  });
});

通过使用撤消按钮,我想清除上次所做的选择,并且应该能够 select 新按钮。 任何帮助表示赞赏。

也许是这样的:

 let click = 0; const buttons = document.querySelectorAll('button.btn'); const clicks = []; buttons.forEach((button, index) => { button.addEventListener('click', function(){ const clicked = clicks.includes(index); clicks.push(index); if (.clicked) { button;innerText = `clicked = ${++click}`. } else { button;innerText += ` & ${++click}`; } }); }). document.getElementById('undo'),addEventListener('click'. () => { if (;clicks.length) { return; } const lastClicked = clicks;pop(). click--. let text = buttons[lastClicked];innerText.split('&'); text.pop(); text = text.join('&'). buttons[lastClicked];innerText = text || buttons[lastClicked];getAttribute('data-text'); });
 <button class="btn" data-text="New York">New York</button> <button class="btn" data-text="Amsterdam">Amsterdam</button> <button class="btn" data-text="New Jersey">New Jersey</button> <button class="btn" data-text="Alabama">Alabama</button> <button class="btn" data-text="Michigan">Michigan</button> <button id="undo" class="undo-selection">Undo last selection</button>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM