我承认自己是一名复制并粘贴JavaScript开发人员(具有其他语言的强大背景)。我正在使用jQuery手风琴,并使用cookie来保存选定的手风琴部分。我找到了一些代码,我将其集成到代码中。关键部分如下。
change: function (event, ui) {
var index = $(this).find("h3").index(ui.newHeader[0]);
$.cookie(accordion, index);
}
这有效,但我讨厌使用我不理解的代码。我知道索引是通过使用find方法发现的(假设我在内容中没有任何h3),但我不明白的是ui.newHeader [0]正在做什么。什么是newHeader数组,它的目的是什么?
谢谢, 埃里克
答案 0 :(得分:3)
查看jquery.ui.accordion.js的源代码,它只是一个包含新选择元素的对象。
如果你只是查看来源,你可以亲眼看看:
// find elements to show and hide
var toShow = clicked.next(),
toHide = this.active.next(),
data = {
options: options,
newHeader: clickedIsActive && options.collapsible ? $([]) : clicked,
oldHeader: this.active,
newContent: clickedIsActive && options.collapsible ? $([]) : toShow,
oldContent: toHide
},
down = this.headers.index( this.active[0] ) > this.headers.index( clicked[0] );
this.active = clickedIsActive ? $([]) : clicked;
this._toggle( toShow, toHide, data, clickedIsActive, down );
return;
},
newHeader不是数组,它是表示新选择元素的对象。您发布的代码会找到accordion元素中的所有h3元素,然后它会获取newHeader的索引。每次手风琴改变时,newHeader表示的元素都会改变。
答案 1 :(得分:1)
它是由手风琴小部件曝光的。 newheader属性保存手风琴打开的激活元素的标题。
另请参阅doc了解更改事件。