从 UL 中删除以编程方式添加的 LI
Remove a Programmatically added LI from UL
我正在使用 asp.net MVC 3,并且我正在尝试删除通过HTTP Post添加的LI。
我能够删除 UI 中已有的项目,但没有添加新项目。
下面是 UI 代码:
<a href="#" id="addNew">Add New</a>
<div id="ulList">
<ul>
<li id="li_1"><a href="#" id="a_1" class="aLink">1</a></li>
<li id="li_2"><a href="#" id="a_2" class="aLink">2</a></li>
<li id="li_3"><a href="#" id="a_3" class="aLink">3</a></li>
</ul>
</div>
<script type="text/javascript">
$('#addNew').on("click", function () {
$.ajax({
url: '@Url.Action("AddItem")',
type: "POST",
data: { id: 4 },
success: function (data) {
$('#ulList ul').append(data);
}
});
});
$('.aLink').on("click", function () {
RemoveItem($(this).attr('id'));
});
function RemoveItem(id) {
id = id.substring(id.indexOf("_") + 1);
$.ajax({
url: '@Url.Action("RemoveItem")',
type: "POST",
data: { id: id },
success: function (event, ui) {
$('#li_' + id).remove();
}
});
}
</script>
AddItem 在代码隐藏中调用 AddItem 并返回简单字符串。
[HttpPost]
public ActionResult AddItem(int id)
{
return Content(@"<li id=""li_4""><a href=""#"" id=""a_4"" class=""aLink"">4</a></li>");
}
项目确实被添加,但请注意,当您单击新添加的项目"4"时,它不会被删除,或者调用删除项目。请告知我需要做什么才能使其正常工作。
$('.aLink').on("click", function () {
RemoveItem($(this).attr('id'));
});
您的 jQuery 事件处理程序将仅将事件附加到最初在页面上带有 .on
的元素。为了使您的事件在动态添加的元素上工作,您有 2 个选项,具体取决于您运行的 jQuery 版本。
V1.4 -> 1.7 .delegate()
$('#ulList').delegate("click","a" function () {
RemoveItem($(this).attr('id'));
});
v1.7+ 修改了 .on() ->重定向以指向父容器
$('#ulList').on("click","a", function () {
RemoveItem($(this).attr('id'));
});
强烈建议使用 jQuery 1.7+ 和 on():
$("#ulList").on("click", ".aLink", function () {
RemoveItem($(this).attr("id"));
});
或者,如果您使用的版本低于 jQuery 1.7,请使用 delegate():
$("#ulList").delegate(".aLink", "click", function() {
RemoveItem($(this).attr("id"));
});
相关文章:
- 如何以编程方式添加到可变嵌套对象中
- 以编程方式添加的复选框的值
- Jsplumb使用端点以编程方式添加连接
- Dropzone”;addedfile”;以程序方式添加图像时不会激发
- Twilio:以编程方式添加/更改电话号码
- 以编程方式添加 href 时缺少铬锚点下划线
- 重新编译角度指令以编程方式添加 ng-module 和 ng-change
- JSDOM - 硬核方式 - 添加外部脚本并使用它
- 如何在通过 JavaScript 以编程方式添加文件后更新多个输入的文件长度
- 从 UL 中删除以编程方式添加的 LI
- 删除以编程方式添加到HTML表中的最后一行表
- 如何以编程方式添加样式
- 以编程方式添加的样式表元素未被dom接受
- 使用 jQuery 以编程方式添加 OnClick 失败
- 为什么可以't我在react native中以编程方式添加到道具中
- 以编程方式添加视图,然后引用这些视图
- Js.单击以编程方式添加的事件,但在加载代码时仅触发一次
- 以编程方式添加表行在javascript中不能正确工作
- 好的上传器,习惯的方式添加下载按钮,每个文件上传
- 使用$compile以编程方式添加指令,并从作用域传递数据