1

这有效:

$('#products.table tr').click ->
  $(@).toggleClass('row_selected')

这不会:

$('#products.table tr').live 'click', (event) ->
  $(@).toggleClass('row_selected')

浏览器控制台错误:

[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)

我错过了什么?

4

1 回答 1

7

从 jQuery 版本 1.7 开始, live已被弃用,Rails 3 的默认 jQuery 版本是 1.9。您需要使用on代替:

尝试:

$(document).on 'click', '#products.table tr', (event) ->
  if ( $(@).hasClass('row_selected') )
    $(@).removeClass('row_selected')
  else
    $(@).addClass('row_selected')

或者,您可以使用toggleClass评论中建议的方法:

$(document).on 'click', '#products.table tr', (event) ->
  $(@).toggleClass('row_selected')
于 2013-09-07T01:13:55.920 回答