我在Firebug控制台中收到错误:
TypeError: $.on is not a function
$.on('ajax:success', 'a[data-remote]', function(xhr, data, status) {
这是我的modal.js文件的第8行 - 见下文。我使用的是gist.github.com/1456815中的代码。
我可以在application.js中找到相关的jQuery v1.7.2缩小代码:
f.fn.extend({on:function(a,c,d,e,g){var h,i;if(typeof a=="object")
jQuery然后我的modal.js代码被资产管道加载,所以我不明白错误,当我加载索引页面时,即在我点击链接之前在Firebug中显示错误。
版本:Ruby 1.9.3,gem 1.8.24,Rails 3.2.1,Rake 0.9.2.2
我的application.js来源:
//= require jquery
//= require jquery-ui
//= require jquery.dataTables
//= require TableTools
//= require ZeroClipboard
//= require datatable_highways
//= require datatable_localities
//= require datatable_neighbours
//= require_tree .
//= require modals
根据RailCasts#205,我已将rail.js下载到/ public / javascripts并重命名为jquery.rails.js。坦率地说,我不理解这一点,并没有明确包含在资产管道中。 (关于如何在论坛中使用rails.js似乎存在混淆)。
jquery.js位于/ vendor / assets / javascripts。
Modal.js.coffee:
# This file should be "required" into your `application.js` via the Asset Pipeline.
$ ->
$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
由于 约翰
答案 0 :(得分:0)
做这样的事情:
$('#modal .close').on 'click', ->
# code
或者,更好的是,使用您的代码:
$modal_close.on 'click', ->
# code