首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用detach()模拟撤销;

用detach()模拟撤销;
EN

Stack Overflow用户
提问于 2019-12-31 05:24:09
回答 1查看 34关注 0票数 0

撤消按钮仅附加最后一个分离的.item,并且不允许在上次删除的项目之外附加分离的项目。这样做的目的是删除尽可能多的项目,并在每次单击撤消按钮时连续恢复它们。

代码语言:javascript
复制
$(document).ready(function() {
  var cacheDom = "";
  $('.remove').click(function() {
    if ($('.item').length > 0) {
      cacheDom = $('.item');
      $(this).closest('.item').detach();
    }
  });
  $('#undo').click(function() {
    $('.list').append(cacheDom);
  });
});
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="list">
  <div class="item">
    Item 1
    <button class='remove'>Remove</button>
  </div>
  <div class="item">
    Item 2
    <button class='remove'>Remove</button>
  </div>
  <div class="item">
    Item 3
    <button class='remove'>Remove</button>
  </div>
</div>
<button id='undo'>Undo</button>

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-31 05:39:01

您可以保留已删除元素的数组,并从数组中的第一个元素开始恢复它们。

代码语言:javascript
复制
$(document).ready(function() {
  var removedItems = [];
  
  $('.remove').click(function() {
    var removeItem = $(this).closest('.item').detach();
    removedItems.push(removeItem);
  });
  
  $('#undo').click(function() {
    if (removedItems.length) {
      var restoreItem = removedItems.shift();
      $('.list').append(restoreItem);
    }
  });
});
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="list">
  <div class="item">
    Item 1
    <button class='remove'>Remove</button>
  </div>
  <div class="item">
    Item 2
    <button class='remove'>Remove</button>
  </div>
  <div class="item">
    Item 3
    <button class='remove'>Remove</button>
  </div>
</div>
<button id='undo'>Undo</button>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59537010

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档