我创建一个动态删除链接,作为这样的:
<a id=\"removeAtt__" + i + "\" class=\"remove_button\" style=\"color:#aaa;\"><i class=\"fa fa-times-circle\"></i> remove</a>
点击链接后,我正在使用以下代码:
$(document).on("click", $('[id*=removeAtt__]'), function () {
var id = event.target.id;
var n = id.lastIndexOf('__');
var result = id.substring(n + 2);
$('#othAtt__' + result).remove();
});
我发现的是,即使我有时在超链接之外单击,也会触发删除操作。有没有更好的方法来执行此操作,以便始终在单击超链接时触发。
答案 0 :(得分:1)
您需要传递一个选择器,例如
$(document).on("click", '.remove-button', function () {
var id = this.id;
var n = id.lastIndexOf('__');
var result = id.substring(n + 2);
$('#othAtt__' + result).remove();
});
过去的解决方案是定义一个function
,该操作将在单击按钮时执行,并在标签的onclick
属性中调用它。
答案 1 :(得分:0)
您的选择器不正确,因此它实际上是在$(document)
上执行的。这是我对编写jQuery选择器的偏好:
$('[id*=removeAtt__]').on("click", function () {
var id = $(this).attr('id);
var n = id.lastIndexOf('__');
var result = id.substring(n + 2);
$('#othAtt__' + result).remove();
});
原因是,如果我的选择器关闭了,我不会误以为代码实际上在起作用。