主干视图原型事件绑定
Backbone view prototype event binding
我正在创建一个Backbone.js插件,该插件在提供JSON数据的情况下提供基本的网格布局。我的问题是,我不知道如何在不改变插件本身的情况下将事件绑定到View类。我宁愿不这样做——我宁愿插件的用户能够扩展视图,或者更改其原型以绑定自定义事件。
插件中的视图是一个基本视图,没有绑定任何事件。它还包含一些其他函数,为了简单起见,我省略了这些函数。
FlipCard.CardView = Backbone.View.extend({
tagName: 'div',
className: 'card',
// and more
});
我曾尝试在单独的app.js文件中使用prototype属性来绑定事件,但它们似乎没有被触发。
FlipCard.CardView.prototype.events = {
'click .card' : 'alert'
};
FlipCard.CardView.prototype.alert = function(){
alert("hello!");
};
我熟悉.extend({})函数,但除非我能以某种方式通知插件使用视图的扩展版本,否则这将不起作用。。。我宁愿不这么做。
对我应该在这里做什么有什么想法吗?
编辑:原来这是个愚蠢的错误。因为视图有类".cad",而我正试图将单击事件绑定到".cad),所以没有必要放入"click.cad"。相反,事件应该是:
FlipCard.CardView.prototype.events = {
'click' : 'alert'
};
如果有人使用他们的插件,他们会像扩展Backbone.Model
一样扩展您的FlipCard.CardView
myApp.Views.myCardView = FlipCard.CardView.extend({
events: {
'click .card' : 'alert'
},
alert: function() {
alert("hello!");
}
}
这会创建一个插件视图的扩展版本,其中绑定了事件,并且不会以任何方式更改插件。然后,用户会像往常一样实例化它:
var someView = new myApp.Views.myCardView();
相关文章:
- 在D3.js中,有没有任何方法可以将x和y方向上的滚动事件绑定到平移svg
- 如何在tinymce编辑器中将点击事件绑定到html标签
- 如何将事件绑定到从AJAX请求注入的HTML
- 将click事件绑定到AngularJS指令中的子元素
- Jquery将事件绑定到页面上的多个实例
- 事件绑定到动态创建的元素
- 使用jQuery进行事件绑定
- 如何将单击事件绑定到其他类
- 更改事件绑定's函数在页面加载时调用
- Jquery事件绑定获胜'当作为方法调用时不起作用,但当直接在控制台中调用时会起作用
- 动态创建的DOM元素上的jQuery事件绑定
- 我是否可以使用 Angular 将鼠标向上事件绑定到文档正文
- 将事件绑定到除 data-rel= BACK 之外的所有锚标记
- 将函数事件绑定到更改函数的复选框/标签
- 使用 Angular 和 UI-bootstrap 对模态事件绑定无法工作的指令
- 聚合物 - 将事件绑定到动态创建的元素
- 将事件绑定到其他UI组件's函数,在Kendo MVVM中
- jQuery Mobile——事件绑定
- JQuery无法将模糊事件绑定到所有<输入>页面中的元素
- 将点击事件绑定到新元素&使得ID'是独一无二的