用户更改输入值(主干.js)时的触发功能
Trigger function when user changes input value (backbone.js)
我刚从 backbone 开始.js目前正在制作一个页面,其中包含一个包含文本输入元素的div #listing_filter
和一个显示从 RESTful 后端(PHP/Codeigniter)获取的一些列表的表格。文本输入中的值将充当筛选器,以缩小服务器检索的结果范围。
问题:每当任何文本框中的值发生变化时,我希望浏览器根据过滤器值获取另一组结果。下面是我的尝试,即使文本输入值已更改,updateFilter
函数也不会触发。知道出了什么问题吗?
另一个问题是我是否应该将#listing_filter
的内容放入模板中,或者只是将其硬编码到主体 HTML 中?谢谢!
JS代码
window.ListingFilterView = Backbone.View.extend({
initialize: function() {
_.bindAll(this, 'updateFilter');
},
events: {
'change input' : 'updateFilter'
},
updateFilter: function() {
console.log('hey');
}
});
// Router
var AppRouter = Backbone.Router.extend({
routes: {
'': 'listings',
},
listings: function() {
//... some other code here
this.listingFilterView = new ListingFilterView();
}
});
网页代码
<div id="listing_filter">
Price: <input type="text" id="listing_filter_price" />
Beds: <input type="text" id="listing_filter_bedroom" />
Baths: <input type="text" id="listing_filter_bathroom" />
</div>
主干视图将仅响应视图el
或其el
内的元素上的事件。默认情况下,视图的el
只是一个空<div>
,您不会告诉视图使用任何其他内容。
您可以告诉视图要使用哪个el
(http://jsfiddle.net/ambiguous/5yXcU/1/):
new ListingFilterView({ el: $('#listing_filter') })
// Or like this:
new ListingFilterView({ el: '#listing_filter' })
或者,您可以使用 setElement
(http://jsfiddle.net/ambiguous/APEfa/1/) 让视图自身附加到该元素:
initialize: function() {
this.setElement($('#listing_filter'));
// or setElement('#listing_filter')
}
或在定义视图时设置el
(http://jsfiddle.net/ambiguous/nyTZU/):
window.ListingFilterView = Backbone.View.extend({
el: '#listing_filter',
//...
});
一旦解决了这个问题,你需要明白,<input>
在失去焦点之前不会触发更改事件,所以你必须等待用户跳出输入或切换到侦听keypress
事件并使用计时器来检测他们何时停止键入。
相关文章:
- JS的搜索功能
- 可以't访问Angular.js服务中的功能
- JavaScript(Underscore.js)扩展功能
- js上传功能
- 如何将具有相同功能的两个select html标签的两个JS组合在一起
- reveal.js幻灯片的多重功能
- js禁用firefox中的退格功能
- Angular JS和jQuery UI自动完成功能
- express js中具有不同功能的动态路由
- 使用视频js功能触发多个视频
- 对页面上的所有ID执行JS功能
- 在iOS上使用iScroll.js时启用缩放功能
- cordova.js/Camera.js无法使用相机功能
- 如何在PDF中放置滚动功能.js
- 在 velocit 内部的功能.js序列
- 如何在 Sails 中扩展蓝图的功能.js而不覆盖整个蓝图
- 使用速度缓动功能.js无法正常工作
- 如何在浏览器中完成图像大小调整后运行功能?(JS/JQuery)
- 向地图框添加功能.js
- 如何禁用浏览器快捷键ctrl-N并在按下ctrl-N时触发功能?JS提琴添加