这个有效:
$('#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/