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")

確認ダイアログで [OK] をクリックするとリンクがたどられることを除いて、これはすべて正常に機能します。これを防ぐ方法はありますか?deleteSupplier から false を返すと、確認が機能しなくなります。[OK] をクリックしたときにリンクをたどらないだけで、確認が機能することを望みます。

編集:これらのリンクは、ページが ajax get リクエストによって読み込まれた後に挿入されることを忘れていました。また、 :confirm を削除してテストしましたが、違いはないようです。ajaxリクエストを介してロードされることと関係があると思いますが、そうであればイベントは発生しないと思いました:(

4

1 に答える 1

5

JS ハンドラーをリンクに追加する Rails マジック リンクと、ハンドラーもリンクに追加するバックボーンの 2 つの力で遊んでいます。

どちらかを選んで、もう一方のために 1 日を空けてあげたほうがいいでしょう。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 に答える