我在Rails中有一个删除链接:
<%= link_to "#{image_tag("icons/icon_delete.png", :alt => "Delete")} Delete".html_safe, "#suppliers", id: supplier.id, class: "delete", :title => "Delete", :confirm => 'Are you sure?', :method => :delete %>
我有一个可以捕获它的骨干事件(CofeeScript):
events: ->
"click a.delete": "deleteSupplier"
deleteSupplier: (event) ->
event.preventDefault()
console.log("delete")
所有这一切都运行正常,只有当我在确认对话框中单击“确定”时,才会跟踪链接。任何想法如何防止这种情况?如果我从deleteSupplier返回false,则确认不再有效,这不是我所追求的。我希望确认工作正常,当我点击“确定”时,不要通过链接。
编辑:我忘了提到在页面通过ajax get请求加载后插入这些链接。我还通过删除:确认测试,它似乎没有任何区别。我相信它与通过ajax请求加载有关,但我认为如果是这样的话,事件甚至都不会触发:(答案 0 :(得分:5)
你正在玩两种力量:Rails魔术链接将JS处理程序添加到链接中,Backbone也添加处理程序链接。
你最好选择一个,让另一个人免费。当您使用Backbone作为JS武器时,让我们将所有JS逻辑移动到Backbone:
<%= link_to "delete", "#suppliers", :id => supplier.id, :class => "delete", :title => "Delete" %>
deleteSupplier: function( event ) {
event.preventDefault();
if( confirm( "Are you sure?" ) ) {
console.log("delete")
}
}