这是用打字稿编写的骨干项目。我无法启动带有BackboneJS复选框的点击事件。这是代码:
//骨干代码
events = {
"click .add-new-question-box": "clickEvent"
};
clickEvent(){
console.log(this.model.get("question"))
alert(this.model.get("question"));
}
//html模板
<input id="<%= typeId %>" type="checkbox" class = "add-new-question-box">
模板呈现不错,但是当我单击复选框时,我看不到事件被调用。
**更新**
我在我使用lambda的另一个实例中复制了这个问题,但它仍然可以正常工作。这是完整的代码:
function getNewDiv(id:string){
return "<div id = "" + id + ""></div>"
}
class TestView extends Backbone.View{
events = {
"click #testDiv" : "start"
}
start = ()=>{
console.log(this.model.get("question"))
alert(this.model.get("question"));
}
constructor(options?){
super(options);
}
render(){
$root.html(getNewDiv("testDiv"));
$("#testDiv").css("height", 100).css("width", 100).css("background-color", "blue");
console.log("Rendered");
return this;
}
}
new TestView().render();
渲染效果很好。点击处理程序仍未被调用。这是控制台输出。
Rendered
要考虑的一件事是this
可能不正确。尝试使用lambda:
clickEvent = ()=>{
console.log(this.model.get("question"))
alert(this.model.get("question"));
}