【问题标题】:Cannot override $.rails.allowAction无法覆盖 $.rails.allowAction
【发布时间】:2012-11-13 12:16:06
【问题描述】:

我需要在我的 rails 应用程序中自定义确认框。我找到this,将 js 代码添加到我的 application.js 中,但似乎 $.rails 未定义。

这是我添加到 application.js 文件中的代码:

$.rails.allowAction = function(link) {
  if (!link.attr('data-confirm')) {
   return true;
  }
  $.rails.showConfirmDialog(link);
  return false;
};

$.rails.confirmed = function(link) {
  link.removeAttr('data-confirm');
  return link.trigger('click.rails');
};

$.rails.showConfirmDialog = function(link) {
  var html, message;
  message = link.attr('data-confirm');
  html = "<div class=\"modal\" id=\"confirmationDialog\">\n  <div class=\"modal-header\">\n    <a class=\"close\" data-dismiss=\"modal\">Ã</a>\n    <h3>Are you sure Mr. President?</h3>\n  </div>\n  <div class=\"modal-body\">\n    <p>" + message + "</p>\n  </div>\n  <div class=\"modal-footer\">\n    <a data-dismiss=\"modal\" class=\"btn\">Cancel</a>\n    <a data-dismiss=\"modal\" class=\"btn btn-primary confirm\">OK</a>\n  </div>\n</div>";
  $(html).modal();
  return $('#confirmationDialog .confirm').on('click', function() {
    return $.rails.confirmed(link);
  });
};

我收到一个错误“Uncaught TypeError: Cannot set property 'allowAction' of undefined”。

你知道有什么问题吗? (jquery_ujs gem 安装加载成功)

提前谢谢你,

杰尔科

【问题讨论】:

    标签: javascript jquery ruby-on-rails ruby-on-rails-3.2


    【解决方案1】:

    你需要:

    gem 'jquery-rails'
    

    不是 jquery_ujs。

    【讨论】:

    • 既然你说你把它放在 application.js 你可能没有使用资产管道,所以我会检查加载脚本的顺序。这东西应该在底部。
    【解决方案2】:

    我将这段代码放入一个名为 custom.confirm.js 的文件中,然后将这两行代码放入其中

    //= require jquery_ujs 
    //= require custom.confirm.js
    

    在 application.js 的底部,它起作用了,谢谢!

    【讨论】:

      【解决方案3】:

      我刚刚遇到了同样的问题,它在 Firefox 上运行良好,但在 Chrome 上运行良好。我猜这是由于 Chrome 缓存造成的,并通过清除与我的开发服务器相关的所有浏览器缓存来修复它,

      【讨论】:

        猜你喜欢
        • 2012-04-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多