jQuery - newHeader属性/字段有什么作用?

时间:2010-11-04 21:54:33

标签: javascript jquery jquery-ui dom

我承认自己是一名复制并粘贴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数组,它的目的是什么?

谢谢, 埃里克

2 个答案:

答案 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了解更改事件。