【问题标题】:Extjs4 Ext.view.View selectionchange event trigger twise when select itemExtjs4 Ext.view.View selectionchange 事件在选择项目时触发两次
【发布时间】:2012-01-17 04:33:32
【问题描述】:

我正在使用 Ext.view.View 作为我的数据视图。当我选择一个项目'selectionchange'事件触发两次。但如果没有“multiSelect:true”,它只会触发一次。

Ext.define('myViewView', {
    extend: 'Ext.view.View',
    alias: 'widget.myViewView',
    store: myContentStore,
    cls: 'content-view-view',
    tpl: myContentViewTpl,
    multiSelect: true,
    trackOver: true,
    overItemCls: 'x-item-over',
    itemSelector: '.thumb-wrap',
    emptyText: emptyDataText,
    resizable: true,
    style: {
        overflow: 'auto'
    },
    listeners: {
        selectionchange: function(dv, selections) {

        }
    },
    prepareData: function(data) {
        Ext.apply(data, {
            sizeString: Ext.util.Format.fileSize(data.size),
            modifiedString: Ext.util.Format.date(data.modified, "m-d-Y:g-i-a"),
            fileFormatPath: createBreadCrumb(data.filePath, false)
        });
        return data;
    }

});

【问题讨论】:

    标签: extjs extjs4 dataview multi-select


    【解决方案1】:

    仅当您选择其他内容时才会触发两次(例如,您选择了一行并选择了另一行)。第一个事件被触发,因为您取消选择第一行,第二个事件在其他行被真正选择后触发。 最简单的解决方案是为事件处理程序设置缓冲区。

    例子:

    listView.on('selectionchange', function(view, nodes){
        // handler
    }, this, { buffer: 10 });
    

    listeners: {
        selectionchange: function() { 
            // handler
        },
        buffer: 10
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-10-28
      • 2021-06-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-16
      • 1970-01-01
      相关资源
      最近更新 更多