Sencha Touch: [undefined] не является функцией - PullRequest
1 голос
/ 22 ноября 2011

Я пытаюсь получить элемент по имени класса с помощью 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>

Есть идеи?

1 Ответ

2 голосов
/ 22 ноября 2011

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

...