Javascript 当我用主干触发事件时,不会发生任何事情

Javascript 当我用主干触发事件时,不会发生任何事情,javascript,testing,backbone.js,tdd,jasmine,Javascript,Testing,Backbone.js,Tdd,Jasmine,我试着从主干开始。我有以下几点: var Question = Backbone.Model.extend({ defaults: function() { return { title: "Enter your question", type: "smallTextField", editMode: true }; }, initialize: function() {

我试着从主干开始。我有以下几点:

var Question = Backbone.Model.extend({
    defaults: function() {
        return {
          title: "Enter your question",
          type: "smallTextField",
          editMode: true
        };
      },

    initialize: function() {
          if (!this.get("title")) {
            this.set({"title": this.defaults.title});
          }
        },   

    toggleEditMode: function() {
        !this.get("editMode");
    },

    clear: function() {
        this.destroy();
      }         

});
收藏:

var Questions = Backbone.Collection.extend({
    initialize: function(models, options) {
        this.bind("add", options.view.addQuestionView);
    }
});
AppView:

var AppView = Backbone.View.extend({
    el: $("body"),

    initialize: function () {
        this.questions = new Questions( null, { view: this });
    },

    events: {
        "click #addQuestion":  "addQuestionModel"
    },

    addQuestionModel: function() {
            var model = new Question();
            this.questions.add(model);
    },

    addQuestionView: function(model) {
        $("#questionBox").append("<div>" + model.get('title') + "</div>");  
    },

}); 

    var appview = new AppView;
以及以下HTML:

<div id="questionBox"></div>
<a href="#" id="addQuestion">Add question</a>
在我的茉莉花规范中,我触发$addQuestion.click

然而,当我运行测试时,什么也没有发生。例如,似乎没有函数绑定到addQuestion的单击事件

我猜有些事情做错了,我根本不知道是什么


有什么想法吗?

为什么你的身份证上有a?是打字错误吗? 尝试删除它id=addQuestion

另外,您确定在触发单击之前已初始化视图吗? 通常,当事件未被触发时,这是因为它们被设置在视图范围之外的元素上,例如在视图中未包含的链接上。但既然你用的是body,除非你在帖子中修改了body,否则我看不出它是怎么来的。 所以我猜jQuery选择器在这里并不是很有用。 尝试:

而不是:

el: $("body")

通常,当我遇到这个问题时,它与这样一个事实有关:在jQuery和DOM完全加载之前,正在对传递到主干视图中的对象文本的属性进行评估


下面是一个描述问题和几种解决方案的示例。

只是在发布之前我对代码进行了一点修改后引入的一个输入错误。对我来说很有用:我希望你的jasmine中有一个正确的HTML,我的意思是你的AADDQ正确地放置在body标签中,因此,事件选择器可以匹配它。我很乐意编辑您的问题,以删除所有添加的代码不超过噪音,我们需要在这里实现模型和集合吗?
el: $("body")