2013-06-05 46 views
0

我嘗試加載或準備運行搜索的事件:function(event),當頁面加載無法生效時,但keyon可以執行搜索功能。 我可以在外面調用搜索功能嗎?是否可以調用頁面加載?請幫忙,我是jquery的初學者。jquery,如何調用backbone.view.extend函數

directory.views.SearchPage = Backbone.View.extend({ 

templateLoader: directory.utils.templateLoader, 
EmployeeListView: directory.views.EmployeeListView, 

initialize: function() { 
    this.template = _.template(this.templateLoader.get('search-page')); 
}, 

render: function(eventName) { 
    $(this.el).html(this.template(this.model.toJSON())); 
    this.listView = new directory.views.EmployeeListView({el: $('ul', this.el), model:this.model}); 
    this.listView.render(); 
    return this; 
}, 
events: { 
    "keyup .search-key": "search", 
    "load .search-key": "search", 
    "ready .search-key": "search" 
}, 
// Start the search function 
search: function(event) { 
    var key = $('.search-key').val(); 
    this.model.findByName(key); 
} 
}); 

回答

0

events散列只偵聽發生在/您視圖中的事件。

您需要手動訂閱document.ready

initialize: function() { 
    var self = this; 
    this.template = _.template(this.templateLoader.get('search-page')); 

    $(document).ready(function (event) { 
     self.search(event); 
    }); 
} 
+0

ethagnawl,你的意思是修改初始化:函數,裏面添加的功能的document.ready?但在我嘗試後,頁面加載仍然不能運行搜索功能...我錯過了什麼? – hungfei

+0

是的 - 這就是我的意思。我必須查看代碼的其餘部分才能知道您是否錯過了某些內容。控制檯中是否有錯誤?參見[this](http://jsfiddle.net/mCPm8/1/)基於你的代碼的小提琴。 – pdoherty926

+0

真的在那裏工作,我昨晚錯過了一些東西!非常感謝! – hungfei