无法通过打字稿在Backbonejs中启动单击事件



这是用打字稿编写的骨干项目。我无法启动带有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"));
    }

最新更新