jQueryUI的手风琴的结构是这样的,
<h2>title</h2><div>content</div>
每个项目。 我所要做的是创建手风琴通过循环我骨干视图的内部,但是骨干网为每个项目div标签,所以我有这样的HTML代码
<div><h2>title</h2><div>content</div></div>
这使得jQuery的手风琴控制工作不正常,折叠和展开不工作。 我认为这是可以,如果我能在EL或标记名设置没有得到解决,但我无法找到答案。 有没有什么办法可以解决这个问题呢?
我想你会马上去手风琴一种观点认为更好的,然后让每个小组中的一个单独视图。 毕竟, <h2>
s为手风琴作为一种整体,而不是针对特定面板控制。
你有一些每个小组的观点是这样的:
var P = Backbone.View.extend({
render: function() {
// Add the panel's content to this.$el (which is a <div> by default).
return this;
}
});
然后手风琴看法是这样的:
var A = Backbone.View.extend({
render: function() {
var panels = [ ... ];
for(var p, i = 0; i < panels.length; ++i) {
p = new P({ ... });
this.$el.append('<h3><a>' + panels[i] + '</a></h3>');
this.$el.append(p.render().el);
}
// The accordion wants to know the sizes of things so
// we let the DOM sort itself out before binding the
// accordion.
var _this = this;
setTimeout(function() { _this.$el.accordion() }, 0);
return this;
}
});
那么你可以简单$('#something').append((new A).render().el)
和它们都工作地很好,同时把一切都在它应该是。
你也可以添加title
方法对P
的意见,然后A
可以问的面板其名称/标题/头应该是让所有的每个面板的信息很好地包含在每个面板视图。
演示: http://jsfiddle.net/ambiguous/Y49W8/