我正在写一个简单的代码,如:
ready = ->
$('div').click ->
$(this).append "<span style='color:#f00;'>olol</span>"
$(document).ready(ready)
$(document).on('page:load', ready)
但是,当我点击网页上的div元素时,没有任何反应。当我把它放入标签之间的HTML文件时一切正常!请帮助,似乎,我已经尝试了所有的东西!
答案 0 :(得分:2)
您没有正确缩进点击处理程序的正文。这部分:
$('div').click ->
$(this).append "<span style='color:#f00;'>olol</span>"
将编译为:
$('div').click(function() {});
$(this).append("<span style='color:#f00;'>olol</span>");
正如您所看到的,单击处理程序中的函数为空。通过缩进第二行来修复它:
$('div').click ->
$(this).append "<span style='color:#f00;'>olol</span>"
现在按预期编译:
$('div').click(function() {
return $(this).append("<span style='color:#f00;'>olol</span>");
});
写Coffeescript时要注意空白。