我是第一次使用Backbone.js,并试图了解它的工作原理。我想做一个搜索表,但是我陷于起点。

这是我的输入搜索框

<input type="txt" name="" class="mysearch">


当我在此搜索框中键入内容时,我想打印一些内容(在控制台上)。
但效果不理想。

jQuery(document).ready(function(){
var mymodel= Backbone.Model.extend({
    defaults:function(){
        return{
        name:''
        }
    }
});

var mycollection=Backbone.Collection.extend({
    model:mymodel
});
var mynewcollection= new mycollection();
var myview=Backbone.View.extend({
    model:mynewcollection,

    el:'.mysearch',
    initialize:function(){
        console.log("initialize");
    },
    events:{
        'keypress .mysearch':'search'
    },
    search:function(){
        console.log("at search");
    }
});
new myview;
    console.log("starting");
});


我不知道什么,我不知道。任何帮助将不胜感激,不胜感激的问题将不胜感激。

最佳答案

您可以通过.mysearch将视图的上下文设置为el:'.mysearch',同时尝试在视图作用域下侦听.mysearch元素发出的事件。您基本上是在尝试听.mysearch .mysearch元素,这显然在您的设置中不起作用。

尝试

var myview=Backbone.View.extend({
    el:'.mysearch',
    initialize:function(){
        console.log("initialize");
    },
    events:{
        'keypress':'search'
    },
    search:function(){
        console.log("at search");
    }
});


和演示https://jsfiddle.net/9kwhw5yj/

09-20 14:29