Javascript 单击会在超链接外激发

Javascript 单击会在超链接外激发,javascript,jquery,Javascript,Jquery,我正在创建一个动态删除链接,如下所示: <a id=\"removeAtt__" + i + "\" class=\"remove_button\" style=\"color:#aaa;\"><i class=\"fa fa-times-circle\"></i>&nbsp; remove</a> 我发现,即使我有时在超链接外单击,它也会触发删除。有没有更好的方法来做到这一点,使它在点击超链接的所有时间火灾 您需要传递一个选择器,

我正在创建一个动态删除链接,如下所示:

   <a id=\"removeAtt__" + i + "\" class=\"remove_button\" style=\"color:#aaa;\"><i class=\"fa fa-times-circle\"></i>&nbsp; remove</a>

我发现,即使我有时在超链接外单击,它也会触发删除。有没有更好的方法来做到这一点,使它在点击超链接的所有时间火灾

您需要传递一个选择器,如

$(document).on("click", '.remove-button', function () {            
        var id = this.id;
        var n = id.lastIndexOf('__');
        var result = id.substring(n + 2);
        $('#othAtt__' + result).remove();
    });

老式的解决方案是定义一个在单击按钮时要执行的函数,并在标记的onclick属性中调用它。

您的选择器不正确,因此它实际上在$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();
});

原因是,如果我的选择器处于关闭状态,我不会错误地感觉到代码实际上正在工作。

对于事件委派,第二个参数应该是字符串,而不是jQuery集合,请参阅
$('[id*=removeAtt__]').on("click", function () {            
  var id = $(this).attr('id);
  var n = id.lastIndexOf('__');
  var result = id.substring(n + 2);
  $('#othAtt__' + result).remove();
});