0
我已经创建了一个隐藏基于表元素的过滤器上被点击“输入”标签的简单骨干查看:重构骨干查看代码,以消除重复
var Filter = Backbone.View.extend({
tagName: "form",
events: {
"click input[name='2013']" : "filter2013",
"click input[name='2012']" : "filter2012"
},
filter2013: function() {
$("tr:contains('2013-')").toggle();
},
filter2012: function() {
$("tr:contains('2012-')").toggle();
},
render: function() {
this.$el.html(JST['acquisitions/filter']);
$("#filter-container").append(this.$el);
return this;
}
});
不优雅可言,尤其是如果我想要添加更多'输入'元素,这将在视图中导致更多自定义函数重复代码。也许一个for循环结合jquery在网页中查找数字(比如说2013,2012和2011等),并根据这些数据生成事件。或者,也许我需要将这些事件完全从视图中取出。
有什么建议吗?
感谢您的建议。有用。一些澄清:1.你为什么说有'class =“year”'更容易找到?引用name属性似乎工作正常。 – tdkr
'class =“year”'允许您通过一个''click input.year''绑定到感兴趣的'','name'属性在''之间变化,因此您必须设置在'events'中添加多个条目。 –