javascript - 在 CoffeeScript 中将 jQuery .click 转换为 .live 'click'

标签 javascript jquery ruby-on-rails coffeescript click

这个有效:

$('#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)

我错过了什么?

最佳答案

live从 jQuery 1.7 版开始已被弃用,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')

关于javascript - 在 CoffeeScript 中将 jQuery .click 转换为 .live 'click',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18668686/

相关文章:

javascript - 使用正则表达式通过匹配数字值拆分数字字符串

javascript - fast-csv 转换似乎正在剥离列

javascript - jquery每个函数获取输入值

javascript - AngularJs : what is the best way to changing DOM elements when there are "global"?

ruby-on-rails - 如何访问事件作业中的延迟作业实例 - Rails 4.2

ruby-on-rails - 新项目: Ruby on Rails or Symfony2 ( or other framework)

javascript - 地理定位 API 不适用于移动设备

javascript - 导入 "wrong"顺序的Web组件时出错

jquery - 导航下拉平滑过渡

ruby-on-rails - 检查两个不同数组中的各个匹配元素