javascript - jQuery - 删除列表中的项目

标签 javascript jquery

我想将不同的项目添加到列表中,然后使用“单击”事件删除每个项目。但是,下面的代码片段只允许我删除那些预设项目,但不允许我删除那些我添加的项目。谁能告诉我我做错了什么?

HTML

<body>
<div id="page">
  <h1 id="header">List</h1>
  <h2>Buy groceries</h2>
  <ul>
    <li id="one" class="hot"><em>fresh</em> figs</li>
    <li id="two" class="hot">pine nuts</li>
    <li id="three" class="hot">honey</li>
    <li id="four">balsamic vinegar</li>
  </ul>
  <div id="newItemButton"><button href="#" id="showForm">new item</button></div>
  <form id="newItemForm">
    <input type="text" id="itemDescription" placeholder="Add description..." />
    <input type="submit" id="addButton" value="add" />
  </form>
</div>
<script src="js/jquery-1.11.0.js"></script>
<script src="js/form.js"></script>

jQuery

$(function() {
  var $newItemButton = $('#newItemButton');
  var $newItemForm = $('#newItemForm');
  var $textInput = $('input:text');

  $newItemButton.show();
  $newItemForm.hide();

  $('#showForm').on('click', function(){
    $newItemButton.hide();
    $newItemForm.show();
  });

  $newItemForm.on('submit', function(e){
    e.preventDefault();
    var newText = $textInput.val();
    $('li:last').after('<li>' + newText + '</li>');
    $('li:last').attr('class','hot');
    $newItemForm.hide();
    $newItemButton.show();
    $textInput.val('');
  });
  var $listItems = $('li');
  $listItems.on('click', function(){
  $(this).animate({
      opacity: 0.0,
      paddingLeft: 50
    }, 500, function(){
      $(this).remove();
    });
  });
});

最佳答案

请检查下面的代码片段

  $(function() {
  var $newItemButton = $('#newItemButton');
  var $newItemForm = $('#newItemForm');
  var $textInput = $('input:text');

  $newItemButton.show();
  $newItemForm.hide();

  $('#showForm').on('click', function(){
    $newItemButton.hide();
    $newItemForm.show();
  });

  $newItemForm.on('submit', function(e){
    e.preventDefault();
    var newText = $textInput.val();
    $('li:last').after('<li>' + newText + '</li>');
    $('li:last').attr('class','hot');
    $newItemForm.hide();
    $newItemButton.show();
    $textInput.val('');
  });

  
});

$(document).ready(function(){

$("#page").on("click","li",function(){
    $(this).animate({
        opacity: 0.0,
        paddingLeft: 50
      }, 500, function(){
        $(this).remove();
      });
  });

});

  
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<div id="page">
  <h1 id="header">List</h1>
  <h2>Buy groceries</h2>
  <ul>
    <li id="one" class="hot"><em>fresh</em> figs</li>
    <li id="two" class="hot">pine nuts</li>
    <li id="three" class="hot">honey</li>
    <li id="four">balsamic vinegar</li>
  </ul>
  <div id="newItemButton"><button href="#" id="showForm">new item</button></div>
  <form id="newItemForm">
    <input type="text" id="itemDescription" placeholder="Add description..." />
    <input type="submit" id="addButton" value="add" />
  </form>
</div>

关于javascript - jQuery - 删除列表中的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43603287/

相关文章:

Javascript 正则表达式模式匹配

javascript - 如何让我的 javascript 组合三种颜色?

javascript - 'td' - 元素未使用循环附加到 'tr' 元素

javascript - 如何使用 jquery 在工具提示上显示 pdf 文件

php - Ajax 调用 - 附加 php echo 的结构

javascript - Gulp js cssmin 问题。无法覆盖现有的缩小文件

javascript - AngularJs 自定义指令未被调用

javascript - Crossrider - 如何触发页面中用户事件的事件?

jquery - 使用 elevateZoom 在我的 div 上出现 z-index 问题,它必须是 2 或 3

javascript - 隐藏和显示按钮不起作用