【发布时间】:2011-05-05 17:21:10
【问题描述】:
我正在尝试熟悉 CoffeeScript 和backbone.js,但我一定遗漏了一些东西。
这个 CoffeeScript:
MyView = Backbone.View.extend
events: {
"click" : "testHandler"
}
testHandler: ->
console.log "click handled"
return false
view = new MyView {el: $('#test_container')}
view.render()
生成以下 JavaScript:
(function() {
var MyView, view;
MyView = Backbone.View.extend({
events: {
"click": "testHandler"
},
testHandler: function() {
console.log("click handled");
return false;
}
});
view = new MyView({
el: $('#test_container')
});
view.render;
}).call(this);
但是当我点击test_container 时click 事件不会触发testHandler。
如果我将输出 JavaScript 更改为:
$(function() {
var MyView, view;
MyView = Backbone.View.extend({
events: {
"click": "testHandler"
},
testHandler: function() {
console.log("click handled");
return false;
}
});
view = new MyView({
el: $('#test_container')
});
view.render;
});
删除call(this) 并附加$,一切正常。我错过了什么?
【问题讨论】:
-
看起来您正在使用 jQuery。是否要添加 jQuery 标签?
标签: javascript jquery coffeescript backbone.js