You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:实现点击文本添加删除线及列表CSS布局问题

解决点击添加删除线及列表布局问题

问题1:点击文本添加删除线功能失效

原代码存在几个核心问题:

  • 创建<li>时错误使用HTML转义字符&lt;/&gt;,导致DOM结构嵌套混乱
  • 每次提交表单都给所有<li>重复绑定点击事件,造成冗余操作
  • 未定义.riscado类的样式,反而错误地给<ul>整体添加了删除线

修改后的JS代码

$(document).ready(function() {
  // 用事件委托绑定点击,支持动态新增的li元素,避免重复绑定
  $('ul').on('click', 'li', function() {
    $(this).toggleClass("riscado"); // toggleClass实现点击切换删除线状态
  });

  $('form').on('submit', function(e) {
    e.preventDefault();
    const listaDeTarefa = $('#lista-de-tarefa').val().trim();
    if (!listaDeTarefa) return; // 过滤空内容

    // 直接创建正确的li元素并插入到ul中
    const novoItem = $(`<li>${listaDeTarefa}</li>`);
    novoItem.appendTo('ul');
    
    $('#lista-de-tarefa').val("");
  });
});

补充对应CSS样式

/* 移除原ul的line-through样式,添加点击后的删除线类 */
.riscado {
  text-decoration: line-through;
}

问题2:列表置于表单外边距之外

只需给列表容器或<ul>添加上外边距,让它与表单拉开距离:

.lista ul {
  margin-top: 20px; /* 可根据需求调整间距大小 */
}

完整修改后的代码

CSS(main.css)

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  font-family: Roboto, sans-serif;
}

.container {
  margin: 100px auto;
  max-width: 640px;
  width: 100%;
}

form {
  margin-top: 40px;
}

input,
textarea,
button {
  display: block;
  padding: 8px;
  margin-bottom: 8px;
  width: 100%;
  resize: none;
}

button {
  background-color: #2e9ccc;
  border: none;
  text-transform: uppercase;
  color: #fff;
  font-weight: bold;
  font-size: 18px;
  font-style: italic;
  cursor: pointer;
}

button:hover {
  background-color: #18a9e9;
}

input:focus,
textarea:focus {
  outline-color: #18a9e9;
}

/* 点击添加删除线的样式 */
.riscado {
  text-decoration: line-through;
}

/* 列表与表单的间距 */
.lista ul {
  margin-top: 20px;
}

JS(main.js)

$(document).ready(function() {
  // 事件委托绑定li点击事件
  $('ul').on('click', 'li', function() {
    $(this).toggleClass("riscado");
  });

  $('form').on('submit', function(e) {
    e.preventDefault();
    const listaDeTarefa = $('#lista-de-tarefa').val().trim();
    if (!listaDeTarefa) return;

    const novoItem = $(`<li>${listaDeTarefa}</li>`);
    novoItem.appendTo('ul');
    
    $('#lista-de-tarefa').val("");
  });
});

HTML保持原结构即可

内容的提问来源于stack exchange,提问作者Adelson Siqueira

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 10:20:23