我刚刚开始使用coffeescript看看所有的大惊小怪,我喜欢它.然而,在将我的旧脚本转换为咖啡时,我遇到了一个问题:
$(function() {
$(create_MP).keyup(function(e){
if(e.which == 16) {
isShift = false;
}
});
});
Run Code Online (Sandbox Code Playgroud)
那是我以前的JQuery,所以我试着把它变成coffeescript:
jQuery ->
$(create_MP).keyup(e) ->
if e.which == 16
isShift = false
Run Code Online (Sandbox Code Playgroud)
但是在打开控制台时出现此错误:
application.js:23Uncaught TypeError: Object [object Object] has no method 'keyUp'
有任何想法吗?
无论如何,这段代码都是错 您发布的CoffeeScript等同于:
jQuery(function() {
$(create_MP).keyup(e)(function() {
if (e.which == 16) {
isShift = false
}
}
}
Run Code Online (Sandbox Code Playgroud)
也就是说,您正在调用结果keyup(e)并将函数传递给它.你想要的是keyup()用函数作为参数调用.修复它的最简单方法就是在keyup和之间放置一个空格(e) ->.
jQuery ->
$(create_MP).keyup (e) ->
isShift = false if e.which is 16
Run Code Online (Sandbox Code Playgroud)