select
是从模板渲染的,并且在调用 renderGroups()
之前并不存在于 DOM 中。
我认为事件绑定(bind)到 View ,所以如果选择最初不存在于 DOM 中也不一定重要?
我是 backbone.js
的新手,所以它可能非常明显:
var DirectoryView = Backbone.View.extend({
el: $("table tbody"),
initialize: function(){
// Populate our collection
this.collection = new Directory(contacts);
// Get our unique groups
var groups = this.getGroups();
this.renderGroups(groups);
},
renderGroups: function(groups) {
var group = $("#groups");
var groupView = new GroupView({
model: {groups: groups}
})
group.append(groupView.render().el)
},
events : {
"change select" : "select"
},
select: function(e) {
console.log("hello")
},
getGroups: function() {
// Pluck all the group properties from our array of contacts and return the unique groups
return _.uniq(this.collection.pluck("group"), false, function(group){
return group.toLowerCase();
});
}
});
模板:
<script id="group-option-tmpl" type="text/template">
<option value="all">All</option>
<% _.each(groups, function(group) { %>
<option value="<%= group %>"><%= group %></option>
<% }); %>
</script>
JSFiddle
最佳答案
看起来 $("#groups")
不在 DirectoryView.el
内。我想 $('#groups')
是 select
。
关于javascript - Backbone.js 事件绑定(bind)未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12937896/