1

我正在按照@coreyward的示例将对象编辑表单放入Rails 的模式对话框窗口中,该示例在此答案中进行了概述,在此要点中针对rails 3.1 进行了更新

我正在使用 Rails 3.2.8 和 jQuery-Rails 2.1.3(jQuery 1.8.2 是应用程序中加载的内容)。然而,这个来自要点的咖啡脚本在第 7 行(就在评论之后)的标题中提出了错误。

$ ->
  $modal = $('#modal')
  $modal_close = $modal.find('.close')
  $modal_container = $('#modal-container')

  # Handle modal links with the data-remote attribute
  $.on 'ajax:success', 'a[data-remote]', (xhr, data, status) ->
    $modal
      .html(data)
      .prepend($modal_close)
      .css('top', $(window).scrollTop() + 40)
      .show()
    $modal_container.show();

  $.on 'click', '#modal .close', ->
    $modal_container.hide()
    $modal.hide()
    false

这个问题的评论让我觉得这可能是一个 jQuery 版本问题,这就是为什么我检查了我的 jQuery 版本,但显然这个 jQuery 没有解决这个问题的那个旧。我还验证了 jQuery 是在此脚本之前加载的(或者至少,它在加载顺序中位于此脚本之上)。

我将上面的咖啡脚本放入一个演示问题的小提琴中(有关错误,请参见您的控制台)。(这也让我认为这不是我的设置的问题。)我会尝试不同版本的 jQuery 看看他们是否解决了它,但也许代码只是不稳定?我不太了解咖啡脚本,无法看到对其他人来说可能很明显的错误。

4

1 回答 1

3

Replacing $.on by $(document).on removes the errors ... The on method needs to be called on a DOM element from what I can tell, never saw it called on the jQuery root object before...

于 2012-11-09T14:59:34.640 回答