Mel*_*emi 1 javascript jquery ruby-on-rails click coffeescript
这有效:
$('#products.table tr').click ->
$(@).toggleClass('row_selected')
Run Code Online (Sandbox Code Playgroud)
这不是:
$('#products.table tr').live 'click', (event) ->
$(@).toggleClass('row_selected')
Run Code Online (Sandbox Code Playgroud)
浏览器控制台出错:
[Error] TypeError: 'undefined' is not a function (evaluating '$('#products.table tr').live')
ready (products.js, line 10)
fire (jquery.js, line 3049)
fireWith (jquery.js, line 3161)
ready (jquery.js, line 434)
completed (jquery.js, line 105)
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
live已经在jQuery 1.7版本中被弃用,而Rails 3的默认jQuery版本是1.9.您需要使用上,而不是:
尝试:
$(document).on 'click', '#products.table tr', (event) ->
if ( $(@).hasClass('row_selected') )
$(@).removeClass('row_selected')
else
$(@).addClass('row_selected')
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用toggleClass评论中建议的方法:
$(document).on 'click', '#products.table tr', (event) ->
$(@).toggleClass('row_selected')
Run Code Online (Sandbox Code Playgroud)