我有一个动态添加输入的表单。当我添加一个新输入时,我会增加一个全局id
变量并将其连接到输入的 id 以便它是唯一的。我还为每个应该删除该输入和他自己的输入创建一个删除按钮(通过删除<div>
它们所在的容器)。我通过 JQuery 向删除按钮的单击事件添加匿名函数来执行删除过程:
$('#deletebutton' + id).click(function(){
$('#inputcontainer' + id).remove();
});
这个解决方案的唯一问题是它不能以我排除它的方式工作。当我单击任何删除按钮时,它将删除最后一个输入容器,因为当我单击时,它会执行匿名函数并评估当时的id
变量,因此选定的 id 将是最后一个输入的 id。所以总是会删除最后一个输入容器。
有没有办法重写这个函数,所以当我将它添加到点击事件时,它会评估id
、注入它并处理选择,就好像它被写成#inputcontainer1
、#inputcontainer2
等一样。
我可以通过将函数的主体添加到按钮的onclick()
事件来做到这一点:
var newbutton = '<button id="deletebutton' + id + '" type="button" onclick="javascript:$(\'#inputcontainer' + id + '\').remove();">x</button>';
但是有没有办法用 JQueryclick()
方式做到这一点?