Backbone.js toggle a popover
Backbone.js toggle a popover
可以插入到另一个视图中的简单popover视图。在创建时,它被引用到父视图的视图元素:
function(app) {
var Popover = app.module();
Popover.Views.Default = Backbone.View.extend({
className: 'popover',
initialize: function(options) {
this.reference = options.reference;
this.reference.bind('click', this.toggle());
this.render();
},
beforeRender: function() {
this.content = this.$el.find('.popover');
}
toggle: function() {
console.log('toggle');
}
});
// Required, return the module for AMD compliance.
return Popover;
});
引用是popover将被设置为如下的元素:
Main.Views.Start = Backbone.View.extend({
template: "main/start",
serialize: function() {
return { model: this.model };
},
initialize: function() {
this.popover = new Popover.Views.Default({
reference: this.$el.find('.member')
});
this.listenTo(this.model, "change", this.render);
},
beforeRender: function(){
this.insertView(this.popover);
}
});
弹出窗口显示正确,但是当我单击a.member
时,什么也没发生。此外,我注意到在页面刷新时触发了toggle方法,toggle出现在日志中。非常沉闷。你知道为什么会这样吗?如何将父视图中的链接单击与popover的切换方法连接起来?
当我记录参考:
[prevObject: jQuery.fn.jQuery.init[1], context: undefined, selector: ".member", jquery: "2.0.0", constructor: function…]context: undefinedlength: 0prevObject: jQuery.fn.jQuery.init[1]selector: ".member"__proto__: Object[0]
您没有将事件正确绑定到reference
,请尝试使用:
this.reference.bind('click', this.toggle);
在创建popover
对象时,$el
不包含.member
元素,日志显示一个长度等于0的对象。确保在创建member
之后创建popover
,可能是在创建render
方法之后。
相关文章:
- jQuery/Javascript.toggleClass/.classList.toggle的特殊行为
- 选择字段-更改popover颜色
- 使用Bootstrap'在Javascript字符串中的popover插件
- Toggle Switch在包含ng model和ng repeat之后不进行切换
- Toggle Javascript
- 如何分解jQuery"toggle”;函数转换为separate“;显示“;以及“;隐藏“;功能
- 销毁Bootstrap popover时出现Javascript错误
- Rails - Bootstrap popover js
- 使用bootstrapthoggle动态更改toggle
- 如何从toggle转换为onclick
- Jquery cookie - toggle box
- JQuery Toggle()
- Ajax content for Twitter Bootstrap Popover
- .toggle() 适用于 ACF 中继器中的所有内容
- Safari扩展中是否有任何Safari Popover隐藏事件
- Bootstrap如何知道一个元素是否有popover
- Toggle已停止在我的网站上工作
- Toggle setLineDash()
- 文本太长,无法启动Popover
- Backbone.js toggle a popover