Rails删除链接工作有点太多了,为什么?

时间:2017-03-03 00:45:55

标签: javascript ruby-on-rails ruby-on-rails-5 bootbox

我试图美化按下导轨时浏览器弹出的确认对话框'使用bootbox删除链接,因此我修改了删除链接的代码,如下所示

.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!');
    });
});

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

的问题:

  1. 发生了什么事?
  2. 我如何得到我想要的东西(即禁用链接激活,以便我可以稍后通过选择激活它)?
  3. P.S:我也试过这个

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

    但结果仍然相同。

1 个答案:

答案 0 :(得分:2)

尝试添加

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有关于这两个事件的一些额外细节。