Sencha Touch: [undefined] не является функцией

Я пытаюсь получить элемент по имени класса с помощью Sencha Touch.

itemswipe: function(dataview, index, element, e) {
    console.log(element.select('.x-list-disclosure'));
}

но он возвращает эту ошибку:

TypeError: Результат выражения 'element.select' [undefined] не является функцией.

Вот полный блок кода

var list1 = new Ext.List({
    flex: 1,
    cls: 'list_simple',
    sorters: ['firstName', 'group'],
    itemTpl: '{firstName} {lastName}',
    grouped: true,
    groupTpl : [
        '<tpl for=".">',
            '<div class="x-list-group x-group-{id}">',
                '<h3 class="x-list-header"><div class="header">{group}</div></h3>',
                '<div class="x-list-group-items">',
                    '{items}',
                '</div>',
            '</div>',
        '</tpl>'
    ],
    onItemDisclosure: function(record, btn, index) {
        Ext.Msg.alert('Tap', 'Disclose more info for ' + record.get('firstName') + ' ' + record.get('lastName'), Ext.emptyFn);
    },
    listeners: {
        itemtap: function(dataview, index, element, e) {
            console.log('node is tapped');
        },
        itemswipe: function(dataview, index, element, e) {
            console.log(element.select('.x-list-disclosure'));
        }
    },
    store: store
});

(Добавлено) Это сгенерированные элементы {items}:

<div class="x-list-group-items">
    <div class="x-list-item x-item">
        <div class="x-list-item-body">Melvin Gilbert</div>
        <div class="x-list-disclosure"></div>
    </div>
    <div class="x-list-item x-item">
        <div class="x-list-item-body">Jeaffrey Gilbert</div>
        <div class="x-list-disclosure"></div>
    </div>
</div>

Любые идеи?


person Jeaf Gilbert    schedule 22.11.2011    source источник
comment
Похоже, вы пытаетесь получить .x-list-disclosure, но у вас его нет нигде в коде, который вы нам показываете.   -  person Kevin Anthony Oppegaard Rose    schedule 22.11.2011
comment
Это автоматически сгенерированный элемент. Я получаю ожидаемый результат, если делаю console.log(element). Интересно, сломана ли библиотека, но я так не думаю.   -  person Jeaf Gilbert    schedule 22.11.2011
comment
каково значение console.log(element); внутри вашего слушателя itemswipe?   -  person JamesHalsall    schedule 22.11.2011
comment
HtmlDivElement с классом .x-list-item. Я добавил сгенерированные элементы элемента в вопрос.   -  person Jeaf Gilbert    schedule 22.11.2011
comment
Оберните переменную элемента вызовом Ext.fly, и она даст вам представление Ext.Element элемента dom. Переменная элемента является узлом DOM, а не экземпляром Ext.Element. Таким образом, он становится Ext.fly(element).select('..')   -  person Stuart    schedule 22.11.2011
comment
Это работает, Стюарт! Большое спасибо. Пожалуйста, вставьте в ответ, и я отмечу это как ответ.   -  person Jeaf Gilbert    schedule 22.11.2011


Ответы (1)


Оберните переменную элемента вызовом Ext.fly, и она даст вам представление Ext.Element элемента dom. Переменная элемента является узлом DOM, а не экземпляром Ext.Element. Таким образом, он становится Ext.fly(element).select('..')

person Stuart    schedule 22.11.2011