Как добавить itemtap - PullRequest
       1

Как добавить itemtap

1 голос
/ 14 июня 2011

У меня есть список, и я не могу получить элементы в списке, чтобы можно было нажимать на них. У меня есть onItemDisclosure, и это должно работать, но это не так. Я хотел бы, чтобы весь ряд был кликабельным, но я не могу заставить что-либо работать.

    onItemDisclosure : function(record, btn, index) {
        //window.location = 'http://www.google.com';
    }

Вот мой полный исходный код

    Ext.ns("Course", "Course.stores");

Course = new Ext.Application({
  defaultTarget : 'viewport',
  name : 'Course',
  launch : function() {
    console.log('begin');

    this.viewport = new Ext.Panel({
      fullscreen : true,
      dockedItems : [ {
        title : 'Course Catalog',
        xtype : 'toolbar',
        ui : 'light',
        dock : 'top'
      } ],
      layout : 'fit',
      scroll : 'vertical',
      items : [ {
        xtype : 'list',
        itemTpl : '<span id="{letter}">{course}</span>',
        store : Course.stores.Properties,
        singleSelect : true,

        itemSelector : 'span.id',
        onItemDisclosure : function(record, btn, index) {
            //window.location = 'http://www.google.com';
        }
      } ],
      flex : 1
    });

  }
});

Ext.regModel('Properties', {
  fields : [ {
    name : 'letter',
    type : 'string'
  }, {
    name : 'course',
    type : 'string'
  } ]
});

Course.stores.Properties = new Ext.data.Store({
  model : 'Properties',  
  sorters: 'letter',
  getGroupString : function(record) {
        return record.get('letter')[0];
  },
  proxy : {
    type : 'ajax',
    url : '../lib/course_catalog.php',
    reader : {
      type : 'json',
    }
  },
  autoLoad : true
});

Ответы [ 2 ]

2 голосов
/ 17 июня 2011

Попробуйте что-то вроде этого:

items : [ {
    xtype : 'list',
    itemTpl : '<span id="{letter}">{course}</span>',
    store : Course.stores.Properties,
    listeners: {
        scope : this,
        itemtap : function(foo, bar, etc) {
            doSomething...
        }
  } ],
0 голосов
/ 18 июня 2011

Причина, по которой касания не обрабатываются, заключается в том, что вы переопределяете конфигурацию itemSelector:

itemSelector : 'span.id',

Вы не должны этого делать, так как Ext.List ожидает, что это будет определенное внутренне установленное значение для правильной обработки событий на элементах. Простое удаление этого из вашей конфигурации должно заставить его работать.

...