2

我在 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 请求加载页面后插入的。而且我还通过删除 :confirm 进行了测试,它似乎没有任何区别。我相信这与通过 ajax 请求加载有关,但我原以为如果是这种情况,事件甚至不会触发:(

4

1 回答 1

5

您正在使用两种力量:将 JS 处理程序添加到链接的 Rails 魔术链接和也将处理程序添加到链接的 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")
  }
}
于 2012-08-15T19:02:22.720 回答