jQuery-click事件没有添加到每个元素中
jQuery - click event not being added to every element
我有一段jQuery代码,当单击提交按钮时,它会将项目添加到无序列表中。添加到列表中的部分内容是一个"X"按钮,用于从列表中删除项目。我使用each()函数为添加到列表中的每个元素添加一个点击事件,但它只附加到第一个元素。
奇怪的是,如果该事件被触发,并且再次单击提交按钮,那么要添加到列表中的下一个元素将获得单击事件。
以下是代码片段:
$("#addTask").click(function() {
if ($("#toDoList").val().trim() != "") {
$("ul.list-group").append("<li class='list-group-item'>" + $("#toDoList").val()
+ " <span class='glyphicon glyphicon-remove' id='removeButton'></span></li>");
$("#toDoList").val("");
};
$.each($("#removeButton"), function() {
$(this).on("click", function() {
$(this).parent().remove();
});
});
});
正如我在评论中所指出的,ID必须是唯一的,因此您需要将removeButton
从ID更改为类。然后,由于您是动态添加删除按钮的,因此需要使用.on()的事件委派语法添加单击处理程序。这将通过以下方式实现:
$("#addTask").click(function () {
$("ul").append("<li class='list-group-item'>task <span class='glyphicon glyphicon-remove removeButton'>X</span></li>");
})
$('ul').on('click', '.removeButton', function () {
$(this).parent().remove();
});
jsFiddle示例
相关文章:
- 如何将html元素添加到tampermonkey中
- 如何将html元素添加为生成的内容
- 如何向Selectize元素添加渲染和创建方法
- 向html选择元素添加选项
- 在d3中向DOM元素添加了图像,但现在它赢得了't过渡
- 如何将新的键/值对元素添加到现有数组
- 使用docment.createElement向元素添加选项
- ng重复向一个元素添加条件类
- 为li元素添加标题
- 向ckeditor中的多个元素添加内联样式
- Javascript 向影子根中的自定义元素添加函数
- 将伪元素添加到<文本区域>
- 如果类只包含一个特定数字,则向元素添加类
- DOM:将空元素添加到 DOM 和页面重排
- 是否有 jQuery 事件用于何时将元素添加到文档中
- 通过 ajax 使用自定义滚动条向元素添加内容
- 是否可以用D3将svg元素添加到开放层映射中
- 如何将元素添加到动态数组并排除现有元素
- 在AngularJS中将元素添加到作用域时,如何在所有设备上播放声音
- 将图像元素添加到<a>标签