jQuery - что делает свойство / поле newHeader? - PullRequest
4 голосов
/ 05 ноября 2010

Я признаю, что являюсь разработчиком JavaScript для копирования и вставки (с большим опытом работы на других языках).Я использую аккордеон jQuery, и использую куки, чтобы сохранить выбранный раздел аккордеона.Я нашел некоторый код, который я интегрировал в мой код.Ключевой раздел выглядит следующим образом.

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

Это работает, но я ненавижу использовать код, который я не понимаю.Я понимаю, что индекс обнаруживается с помощью метода find (который предполагает, что у меня нет h3s внутри содержимого), но я не понимаю, что делает ui.newHeader [0].Что такое массив newHeader и для чего он здесь используется?

Спасибо, Эрик

Ответы [ 2 ]

3 голосов
/ 05 ноября 2010

Глядя на источник для 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 - это не массив, это объект, который представляет вновь выбранный элемент. Размещенный вами код находит все элементы h3 в элементе accordion, а затем получает индекс newHeader. Элемент, который представляет newHeader, меняется каждый раз, когда меняется аккордеон.

1 голос
/ 05 ноября 2010

Это выставлено виджетом аккордеона. Свойство newheader содержит заголовок активированного элемента, который открыл аккордеон.

См. Также документ для события изменения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...