Ext.Img событие onload

Как ни странно, у Ext.Img отсутствует event onload, который сигнализирует о том, что картинка загружена. Добавим это событие сами

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// /app/lv/axp/dom/Img.js
Ext.require('Ext.Img');
 
Ext.define('lv.axp.dom.Img', {
	extend: 'Ext.Img',
	constructor: function (config) {
		this.callParent(arguments);
		this.addEvents('load');
		this.on('afterrender', function () {
			var me = this;
			this.getEl().on('load', function (e, el, eOpts) {
				me.fireEvent('load', e, el, eOpts);
			});
		});
	}
});

this.getEl() вернет DOM-элемент только после того, как компонент отрендерится, поэтому приходится сначала повесить слушателя на afterrender.

Ну и пример использования:

1
2
3
4
5
6
7
8
9
Ext.require('lv.axp.dom.Img');
Ext.create('lv.axp.dom.Img', {
    src: 'resources/images/spinner.gif',
    listeners: {
        load: function () {
	    Ext.Msg.alert('Alert', 'Image loaded!');
	}
    }
});

Думаю, заведу репозиторий на гихабе для всяких таких «хаков»

Пока скачать можно тут

Оставить комментарий