在Coffeescript中重写我网站的前端。我理解如何将click函数绑定到类。
$('.song').click ->
//code
但是,我遇到了动态加载内容的一些问题。我知道在JQuery中,解决方法是使用“On”函数,如下所示:
$(document).on('click', '.song', function(){
//code
});
但我不确定这是如何转化为咖啡因的。我的印象是火箭箭头 - >转换为javascript中的匿名函数,但如果函数是参数之一,它如何工作?我已经尝试了很多不同的语法,但它们似乎都没有用,谢谢!
答案 0 :(得分:21)
如果执行顺序没有它们,通常不会在CoffeeScript中使用括号。所以这可以这样写:
$(document).on 'click', '.song', ->
### code ###
但是,当执行顺序不明显时,总是使用括号。
答案 1 :(得分:15)
$(document).on('click', '.song', ( ->
### code ###
));
转换为此JavaScript:
$(document).on('click', '.song', (function() {
/* code */
}));
请注意,您可能希望使用=>
运算符代替->
;使用双箭头也会将this
绑定到事件处理程序(相当于使用jQuery的bind)。
答案 2 :(得分:4)
JS2Coffee可以帮助解决这些类型的问题:
你需要对js2coffee小心谨慎,因为它有时会遇到相当棘手的JS代码,但它的准确度非常高,通常至少会让你非常接近。