JQuery 1.4.4 と jQuery UJS rails.js ( https://github.com/rails/jquery-ujs )で Ruby On Rails 3.0.3 アプリを作っています。
私はモデル/ビュー/コントローラーを生成した足場を持っています-ドキュメント、私はapp/views/documents/index.html.hamlファイルにリンクを削除しています:
link_to "delete", document, :confirm => "Are you sure?", :method => :delete
これにより、次の HTML が生成されます。
<a href="/documents/1" data-confirm="Are you sure?" data-method="delete" rel="nofollow">Destroy</a>
これは非常に問題ないようです。
この「Destroy」リンクをクリックすると、ブラウザのconfirm()が表示され、[キャンセル] をクリックしても何も起こらないと思います。
しかし
削除機能が発生し、ドキュメントが削除されます。
誰かが同じ問題を抱えていますか、それとも私は何か間違っていますか?
現在、私はここまで掘り下げました:
jquery-ujs rails.jsを調べたところ、同じアンカーに2 つの.live()イベントが関連付けられています。
1) $('a[データ確認],input[データ確認]').live('クリック', function () {...}
2) $('a[データメソッド]:not([データリモート])').live('クリック', function (e){...}
最初の live() はreturn false;を実行します。私が理解しているように、これはすべての実行チェーンにブレーキをかける必要がありますが、そうではありません。2 番目のlive()は引き続き実行され、この 2 番目のlive()はフォームが生成され、アクションを破棄するために送信される場所です。