代码之家  ›  专栏  ›  技术社区  ›  Erick T

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

  •  4
  • Erick T  · 技术社区  · 14 年前

    我承认自己是一个复制粘贴JavaScript的开发人员(在其他语言中有很强的背景)。我正在使用jQuery accordion,并使用cookies保存所选的accordion部分。我找到了一些我集成到代码中的代码。关键部分如下。

    change: function (event, ui) {
         var index = $(this).find("h3").index(ui.newHeader[0]);
         $.cookie(accordion, index);
    }
    

    这很有效,但我讨厌使用我不懂的代码。我知道索引是通过find方法发现的(这使得我假设内容中没有任何h3),但我不明白ui.newHeader[0]在做什么。newHeader数组是什么,它在这里的用途是什么?

    谢谢, 埃里克

    2 回复  |  直到 14 年前
        1
  •  3
  •   Radu    14 年前

    在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表示的元素都会更改。

        2
  •  1
  •   Thomas    14 年前

    它是由手风琴小工具曝光的。newheader属性保存accordion打开的激活元素的头。

    另请参见 doc