单击时在超链接之外触发

时间:2019-02-01 18:08:16

标签: javascript jquery

我创建一个动态删除链接,作为这样的:

   <a id=\"removeAtt__" + i + "\" class=\"remove_button\" style=\"color:#aaa;\"><i class=\"fa fa-times-circle\"></i>&nbsp; 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();
    });

我发现的是,即使我有时在超链接之外单击,也会触发删除操作。有没有更好的方法来执行此操作,以便始终在单击超链接时触发。

2 个答案:

答案 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();
});

原因是,如果我的选择器关闭了,我不会误以为代码实际上在起作用。