Rails UJS - 取消绑定事件处理程序



我有一个由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对话框。

但是,我想覆盖此确认对话框。我想使用引导框显示确认对话框。

因此,我尝试从这些按钮中解绑单击事件。 我已经尝试了以下所有方法(在控制台中)。但没有一个奏效。

$('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。但我不想这样。我希望将其作为默认功能。我将覆盖运行时。我怎样才能做到这一点?

如何覆盖默认的确认操作?参见UJS的源代码:

// Default confirm dialog, may be overridden with custom confirm dialog in $.rails.confirm
confirm: function(message) {
  return confirm(message);
},

虽然我问如何覆盖rails ujs默认的确认方法,但我的实际意图是使用引导框确认对话框而不是默认浏览器的确认框。

我在这里找到了开箱即用的解决方案。我在这里链接它,以便它可以帮助其他人有类似的要求:

https://gist.github.com/2823526

最新更新