mootools: Проблема с работой объекта в другом классе
Добрый день!
Недавно начал изучать mootools, столкнулся с такой проблемой: непонятно передаётся свойство enabled в методе clicked. В нижеприведённом коде в комментариях указано, где оно работает корректно, и где не работает. Прошу прощения за большой объем кода, резал как мог, оставляя только самое важное. Подскажите, в чём ошибка. Заранее спасибо! Button = new Class({ Implements: [Options,Events], options: { enabled: true }, initialize: function(options) { this.setOptions(options); this.button = new Element('a', { href: '', text: 'Тест', events: { click: this.clicked.bindWithEvent(this) } }); this.setEnabled(this.options.enabled); }, clicked: function(evt) { alert(this.options.enabled); if (this.options.enabled) { this.fireEvent('click', {obj: this, event: evt}); } }, setEnabled: function(enabled) { this.options.enabled = enabled; if (this.options.enabled) { this.button.setStyle('color', '#000'); } else { this.button.setStyle('color', '#fff'); } } }); Toolbar = new Class({ Implements: [Options], options: { id: '' }, initialize: function(options) { this.setOptions(options); this.items = []; this.n = 0; this.toolbar = $(this.options.id); }, add: function(items) { items.each(function(item, index) { this.n++; this.items[this.n] = item; this.toolbar.adopt(item.button); }.bind(this)); //this.items[1].setEnabled(true); //Button.clicked работает } }); Grid = new Class({ Implements: [Options], options: { button: '' }, initialize: function(id, options) { this.setOptions(options); this.options.button.setEnabled(true); //Button.clicked не работает } }); window.addEvent('domready', function() { var toolbar = new Toolbar({id: 'toolbar'}); toolbar.add([ new Button({enabled: false, onClick: function(){alert('Работает');}}) ]); var grid = new Grid('grid', {button: toolbar.items[1]}); //toolbar.items[1].setEnabled(true); //Button.clicked работает }); |
Часовой пояс GMT +3, время: 07:38. |