分配给在backbone.js中不起作用的点击事件的ID?

时间:2013-06-08 18:47:15

标签: javascript jquery backbone.js

下面是我的HTML,我已经给了我所有li的ID ..

<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");
    }

});

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:1)

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

看看documented source code of backbone。你可以看到它在views元素上使用jQueries $el.on来绑定事件。