如何为视图添加动态事件
How to add dynamic events for view?
如何在Backbone.js 中的视图类中添加动态事件
我有的View课程
var myViewClass = Backbone.View.extend({
events: {
'change select': 'changeSelect',
'click a.changeLink': 'clearSelect'
},
initialize: function() {
this.delegateEvents({'click select': 'changeSelect'});
},
.
.
.
});
这是在添加{"click select":"changeSelect"}事件,但不知何故,{"lick a.changeLink":"clearSelect"}并没有出现问题。
有人知道解决办法吗?
谢谢,Rohan
Backbone会自动委派视图的events属性中的事件。您正在覆盖以前委派的事件。您可以调用$(this.el(.delete(…(,但也可以执行
this.delegateEvents(_.extend(this.events, {'click select': 'changeSelect'}));
由于我经常这样做,下面是我的小型骨干扩展(基于Julien的回答和我的测试(:
Backbone.View.prototype.addEvents = function(events) {
this.delegateEvents( _.extend(_.clone(this.events), events) );
};
用途:
BaseResizable.View = Base.View.extend({
initialize: function() {
Base.View.prototype.initialize.call(this);
this.addEvents({
'resizestop': 'resizeStop'
});
},
resizeStop: function(event, ui){...}
}
如果使用undelegateEvents()
,则必须再次执行addEvents()
。
相关文章:
- 设置多个观察程序以触发动态事件的角度替代解决方案 - 优化的观察者模式
- fullCalendar动态事件单击行为
- 基于淘汰中的条件的动态事件处理程序
- j查询动态事件处理程序错误
- 如何将动态函数绑定到动态事件
- 谷歌分析动态事件值.这段代码有什么问题
- 动态事件上的更改事件
- 动态事件处理程序
- jQuery不允许动态事件侦听器
- Javascript 事件发射器 |动态事件名称
- HTML 元素上的静态事件附件与动态事件附件
- Titanium Javascript:如何创建动态事件监听器
- 创建基于时间的动态事件(如建筑施工时间等)的最佳方式是什么
- 仅在上次创建的元素上工作的动态事件侦听器
- 创建动态事件到javascript日历
- JQuery不能使用.load处理动态事件
- 加载JavaScript文件和动态事件
- 在backbone.js中获取动态事件ID
- 如何为视图添加动态事件
- FullCalendar和多个动态事件源