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!
消息!
问题:
- 这是怎么回事?
- 我怎样才能得到我想要的东西(即禁用 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 有关于这两个事件的一些额外细节。
我正在尝试美化按下 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!
消息!
问题:
- 这是怎么回事?
- 我怎样才能得到我想要的东西(即禁用 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 有关于这两个事件的一些额外细节。