CoffeeScript - 使用JQuery On将事件绑定到动态加载的对象

时间:2012-01-15 21:53:11

标签: jquery ajax coffeescript

在Coffeescript中重写我网站的前端。我理解如何将click函数绑定到类。

$('.song').click ->
    //code

但是,我遇到了动态加载内容的一些问题。我知道在JQuery中,解决方法是使用“On”函数,如下所示:

$(document).on('click', '.song', function(){
    //code
});

但我不确定这是如何转化为咖啡因的。我的印象是火箭箭头 - >转换为javascript中的匿名函数,但如果函数是参数之一,它如何工作?我已经尝试了很多不同的语法,但它们似乎都没有用,谢谢!

3 个答案:

答案 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可以帮助解决这些类型的问题:

http://js2coffee.org/

你需要对js2coffee小心谨慎,因为它有时会遇到相当棘手的JS代码,但它的准确度非常高,通常至少会让你非常接近。