ruby-on-rails - Rails UJS - 解除绑定(bind)事件处理程序

标签 ruby-on-rails ruby-on-rails-3.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>

当我单击此按钮时,它会按预期打开确认对话框。

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

所以,我尝试解除这些按钮的点击事件的绑定(bind)。我已经尝试了以下所有方法(在控制台中)。但没有一个有效。

$('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);
},

关于ruby-on-rails - Rails UJS - 解除绑定(bind)事件处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13377943/

相关文章:

ruby-on-rails - Rails - 如何创建文件 (XML) 并将其保存到 Amazon S3 存储桶中?

ruby-on-rails - 如何在 Nginx 上使用 asset_path 和文件

ruby-on-rails-3.2 - 自定义序列化器的输出

ruby - 如何在 ruby​​ on rails 中创建 json 对象?

ruby-on-rails - 使用#update_all 更新时间戳

ruby-on-rails - rubymine 注释掉 rails 代码

javascript - 垂直时间轴在 chrome 浏览器中不起作用

ruby-on-rails - 带双冒号的 Ruby 类命名约定

ruby-on-rails - jQuery .on() 不适用于 jquery-ujs

ruby-on-rails - 为什么我的主页链接试图将我带到 '/root_path' 而不是 '/' ?