2

link_toヘルパー メソッドによって生成された削除ボタンがあります。次のマークアップが生成されます。

<a href="/clips/150" class="btn btn-mini btn-danger" data-confirm="Are you sure?" data-method="delete" rel="nofollow">Destroy</a>

このボタンをクリックすると、confirm期待どおりにダイアログ ボックスが開きます。

ただし、この確認ダイアログ ボックスをオーバーライドしたいと考えています。Bootboxを使用して確認ダイアログ ボックスを表示したい。

そこで、これらのボタンからクリック イベントのバインドを解除しようとしました。次のすべての方法を(コンソールで)試しました。しかし、どれも機能しません。

$('a[data-confirm]').unbind('click')

また、

$('a[data-confirm]').off('click')

また、

$('a[data-confirm]').undelegate('click')

でも、click.railsこれはjquery_ujs.jsで宣言されているので、イベント名として試しました。

$(document).delegate(rails.linkClickSelector, 'click.rails', function(e) {

:confirm => trueヘルパー メソッドを呼び出すときに削除するように求められる場合があります。しかし、私はそれを望んでいません。私はそれをデフォルトの機能にしたいです。ランタイムをオーバーライドします。どうすればそれを達成できますか?

4

2 に答える 2

1

rails ujs のデフォルトの確認メソッドをオーバーライドする方法を尋ねましたが、私の実際の意図は、デフォルトのブラウザーの確認ボックスではなく、ブートボックスの確認ダイアログを使用することでした。

ここですぐに使えるソリューションを手に入れました。私はこれをここにリンクしているので、同様の要件を持つ他の誰かを助けることができます:

https://gist.github.com/2823526

于 2012-11-14T12:32:59.533 に答える
1

デフォルトの確認アクションをオーバーライドするのはどうですか? UJS のソース コードを参照してください。

// Default confirm dialog, may be overridden with custom confirm dialog in $.rails.confirm
confirm: function(message) {
  return confirm(message);
},
于 2012-11-14T11:43:59.463 に答える