Rails delete link 有点过分了,为什么?

Rails delete link works a bit too much, why?

我正在尝试美化按下 rails 时浏览器弹出的确认对话框,删除 links,使用 bootbox,所以我修改了删除 link的代码如下

.html.erb

<%= link_to '#', :class => "btn btn-danger delete-link", 'data-src' => item_path(@item), :method => :delete do %>
    <span class='fa fa-times'></span> Delete IT
<% end %>

application.js

$(document).ready(function(){
    $('.delete-link[data-method="delete"]').click(function(e){
        e.preventDefault();
        console.log('THIS SHOULD NOT REDIRECT!');
    });
});

但奇怪的是,当我按下按钮时,link 激活并删除了该项目!但它也会记录 THIS SHOULD NOT REDIRECT! 消息!

问题:

  1. 这是怎么回事?
  2. 我怎样才能得到我想要的东西(即禁用 link 激活以便我以后可以选择激活它)?

P.S: 我也试过这个

$('.delete-link[data-method="delete"]').unbind('click').click(function(e){...});

结果还是一样

尝试添加

e.stopPropagation();

所以你的代码看起来像:

$(document).ready(function(){
  $('.delete-link[data-method="delete"]').click(function(e){
      e.preventDefault();
      e.stopPropagation();
      console.log('THIS SHOULD NOT REDIRECT!');
  });
});
  • stopPropagation 阻止事件在事件链中冒泡。
  • preventDefault 阻止浏览器对该事件进行的默认操作。

参考:this stack overflow question 有关于这两个事件的一些额外细节。