下面是我的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");
}
});
答案 0 :(得分:3)
根据您的JSFiddle,它不起作用,因为您将事件绑定到以SearchView
为根元素的search_container
。 block4
不是search_container
的孩子,永远不会匹配。我建议创建另一个代表color_wrap
的视图。如果在这样的视图中声明,您的点击事件将起作用。
答案 1 :(得分:1)
问题是events
块中添加的所有事件只监听视图的元素而不是页面中的所有元素。因此,在您的情况下,# block4
不是view.el
元素中的子元素。
看看documented source code of backbone。你可以看到它在views元素上使用jQueries $el.on
来绑定事件。