选择带有 jQuery 标签的“li”项时出错
Trouble selecting a "li" item with jQuery tag
我正在尝试创建一个简单的待办事项应用程序,该应用程序可以发布新项目并附加到 DOM 并在单击时删除该项目。我能够将待办事项附加到页面,但是当它们被点击时,它们不会被删除。我相信这与我的 onclick 事件处理程序有关,因为它没有正确选择"li"。有什么想法吗?
代码如下:
<html>
<head>
<script src='jquery-2.1.3.js'></script>
<script src='handlebars-v2.0.0.js'></script>
</head>
<body>
<!-- #TODO LIST
Create textarea "todo item" and associated "submit button"
When "submit button" is clicked
take data entered into "todo item"
append to empty div "todos" as Li item with id of the todo item
Empty the "todo item"
When a list item in "todos" is clicked delete item from "todos"
-->
<div>
<textarea id = 'todoItem'></textarea>
<button id = 'submitButton'>Post</button>
</div>
<div class = 'todos'>Items</div>
<script>
$("#submitButton").on("click", function(){
var todo = $("#todoItem").val();
$('<li>' + todo + '</li>').appendTo('.todos');
$("#todoItem").val('');
});
$("li").on("click", function(){
$('li').remove();
});
</script>
</body>
</html>
这里有几个问题:
- 您没有点击事件
button
提交输入的文本 -
$("li").on("click", function(){
不起作用,因为li
是在 DOM 加载后附加的,因此您需要在其他地方(如body
)添加事件侦听器并将li
添加为委托。例如:$("body").on("click", "li", function(){
- 您应该调用
$(this).remove();
而不是$("li").remove()
来删除实际单击的li
小提琴
$("#submitButton").click(function(){
var todo = $("#todoItem").val();
$('<li>' + todo + '</li>').appendTo('.todos');
$("#todoItem").val('');
});
$("body").on("click", "li", function(){
$(this).remove();
});
相关文章:
- javascript中的数组出错
- 节点Js:How to catch a“;没有这样的文件或目录“;读取线模块出错
- 使用CSS或js,使用动态选择器选择任意li的下一个元素
- 引导程序:在导航栏中,显示悬停在单个位置的基于Li Link的不同内容
- 在Meteor项目中安装并包含npm模块后出错
- 更改li标记文本的Javascript
- 解析JSON并从中删除对象会出错
- 完全可链接的li元素
- AngularJS指令出错-无法读取属性'编译'的未定义
- 使用javascript在MVC中查找网格长度时出错
- 使用jquery动态创建ul-li
- 尝试调用AngularJS上的函数时出错
- tiltSlider播放/暂停视频元素(如果li有当前类)
- 使用下拉列表筛选列表(ul>li)
- Google 脚本:用于创建日历活动的脚本运行时不会出错,但不会执行任何操作
- 全局安装gull后出错
- 我在代码点火器中出错
- 在bootstrap中显示隐藏特定的li
- Java脚本将URL转换为已保存的URL时出错
- 选择带有 jQuery 标签的“li”项时出错