在WindowsScript中将jQuery .click转换为.live'click'

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)

我错过了什么?

vee*_*vee 7

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)