如何动态重命名列表的追加项
How to dynamically rename an appended item of a list
尝试动态更改 html 列表上的名称,我的重命名函数适用于列表中已有的项目,但不适用于附加的项目我的代码如下:
$(document).ready(function() {
// Append items functions
$("#btn2").on('click', function () {
var name = $('#name').val();
$('<li>', {
text: name
}).appendTo('ol').append($('<button />', {
'class': 'btn3',
text: 'Remove'
})).append($('<button />',{
'class': 'btn4',
text: 'Rename'
}));
});
//delete items functions
$(document).on('click', 'ol .btn3', function () {
$(this).closest('li').remove();
});
//rename function
$(".btn4").on('click', function () {
var rename = "test"//$('#rename').val();
$(this).closest('li').after($('<li>', {
text: rename
}).appendTo('ol').append($('<button />', {
'class': 'btn3',
text: 'Remove'
})).append($('<button />',{
'class': 'btn4',
text: 'Rename'
}))).remove();
});
});
</script>
</head>
<body>
<div class = "container">
<ol>
<li>List item 1 <button class="btn3">remove</button><button class="btn4">rename</button></li>
<li>List item 2 <button class="btn3">remove</button><button class="btn4">rename</button></li>
<li>List item 3 <button class="btn3">remove</button><button class="btn4">rename</button></li>
</ol>
</div>
<input id = "name" type = "text"> <button id="btn2">Append list items</button>
</body>
非常感谢提示和帮助
您的问题区域是这样的,您的.btn4
也是动态创建的,因此您需要使用委托的事件处理程序。
$(document).on('click', ".btn4", function () {
var rename = "test" //$('#rename').val();
$(this).closest('li').after($('<li>', {
text: rename
}).appendTo('ol').append($('<button />', {
'class': 'btn3',
text: 'Remove'
})).append($('<button />', {
'class': 'btn4',
text: 'Rename'
}))).remove();
});
如果ol
不是在原始代码中动态生成的,您可以使用
$('ol').on('click', ".btn4", function () { ... }
演示
我认为你想要的是"事件委派"。在jQuery中,这意味着使用
$('window').on('click', 'li', function () { ... });
Instead of
$('li').click(function () { ... });
前者是一个单一的处理程序,应用于窗口 DOM 对象,侦听其中对 li 的所有点击。后者是一个单独的点击处理程序,应用于当前页面上的每个 li。前者将扩展到所有新来者,后者不会。
希望这有帮助!
相关文章:
- 将 json 数据追加到 HTML 列表框
- 从 html.append 追加的 html 下拉列表中获取返回值
- 将同一个元素追加到两个下拉列表中只会导致最后一个元素被追加
- 在文档就绪时追加DDL;不要让它在列表项上有CSS,而不让它们可排序
- jQuery:拖放到多个列表,不可追加或重新拖动
- jQuery追加x元素的列表
- 事件列表器不适用于追加的项目
- 如何将项目添加到选定的追加列表 jQuery
- 选项追加不添加值以选择下拉列表
- 对追加的列表项设置限制
- 选择菜单更改仅在第一个事件上追加对象列表
- 在 jQuery 切片后重新追加列表项并删除
- 使用追加网格库下拉的绑定列表
- 将对象追加到 JSON 列表
- 尝试将列表项追加到动态 id
- 将 XML 数据追加到列表视图 JQuery Mobile
- 如何动态重命名列表的追加项
- 如何将文本框追加到复选框列表项,该复选框列表项来自选择列表项的 SharePoint 列表
- JQuery列表追加项不可选择
- 从一个选择列表追加到另一个选择列表(Apex 4.2)