javascript - Backbone.js 事件绑定(bind)未触发

标签 javascript backbone.js backbone-events

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

http://jsfiddle.net/BDgMu/1/

最佳答案

看起来 $("#groups") 不在 DirectoryView.el 内。我想 $('#groups')select

关于javascript - Backbone.js 事件绑定(bind)未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12937896/

相关文章:

javascript - Backbone.js 和非模型对象

Backbone.js:如何在更改模型集合时强制 View 自动刷新

javascript - 使用 javascript ajax 调用 PHP 函数

javascript - Routing.navigate 与 document.location.hash

javascript - Thorax.js Collection View 不渲染模型属性

javascript - 主干监听集合上的更改事件

backbone.js - 在 Backbone js 中捕获 View 上的删除事件

javascript - jQuery 仅在服务器发生变化时刷新 div

javascript - Jquery/Ajax 拖放至 CLICK 功能

javascript - 在 JSDoc 中描述对象数组