эти слушатели (по крайней мере) должны быть применены к Ext.grid.RowSelectionModel , чтобы эти события были правильно связаны в этой конкретной области. см. статью блога ; Есть еще несколько типов событий DOM, которые необходимо учитывать. искомое событие называется taphold
или longpress
(см. документацию Safari для «Обработки событий»).
события RowSelectionModel
могут быть определены одинаково:
new Ext.grid.GridPanel({
/**
* one has to instance the default row-selection model explicitly,
* in order to be able to configure it's event listeners ...
**/
sm: new Ext.grid.RowSelectionModel({
singleSelect: true,
listeners: {
taphold: 'rowcontextmenu'
}
})
});
можно также использовать Ext.util.Observable для отладки событий; это очень удобно, особенно при использовании устаревшей платформы, где весьма сомнительно, насколько эта функциональность уже поддерживается.
// to intercept all events:
Ext.util.Observable.prototype.fireEvent =
Ext.util.Observable.prototype.fireEvent.createInterceptor(function() {
console.log(this.name);
console.log(arguments);
return true;
});
// to capture the events of a particular component:
Ext.util.Observable.capture(
Ext.getCmp('my-grid-component'), function(event) {
console.info(event);
}
);
с Ext.EventManager.addListener () или .on () , можно определить только любые отсутствующие каркасные события.