Я пытаюсь ознакомиться с CoffeeScript и backbone.js, и я должен что-то упустить.Почему мои события 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);
Но click
событие не срабатывает testHandler
, когда я нажимаю на test_container
.
Если изменить выходной 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? – Angiosperm