4

下面是我的 html,我已经给我所有li的 ..

<ul id="color_wrap">
    <li id="block4"></li>
</ul>

我是backbone.js 的新手。在我的 js 文件和backbone.view 部分中,我已经声明了我的代码,如下所示。我已经给出了宽度和高度,li当我点击它时不起作用。我想让所有li的都可以点击,请帮助我哪里错了,为什么它不起作用。当我单击具有 id block4 的 li 时,它应该调用 chooseColor 函数。

var SearchView = Backbone.View.extend({

    el: $("#search_container"),

    events: {
        "click #block4": "chooseColor",
        "focusout #search_input": "setDefaults"
    },

    chooseColor:function() {
        alert("hi");
    }

});
4

2 回答 2

3

根据您的JSFiddle,它不起作用,因为您将事件绑定到SearchView作为search_container根元素的事件。block4不是的孩子,search_container也永远不会匹配。我建议创建另一个代表color_wrap. 如果在这样的视图中声明,您的点击事件将起作用。

于 2013-06-08T19:10:45.363 回答
1

问题是events块中添加的所有事件只监听视图的元素而不是页面中的所有元素。所以在你的情况下# block4不是元素中的子view.el元素。

查看记录在案的主干源代码。您可以看到它$el.on在视图元素上使用 jQueries 来绑定事件。

于 2013-06-08T19:09:25.710 回答