Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 01.04.2011, 10:08
Новичок на форуме
Отправить личное сообщение для mrfanat Посмотреть профиль Найти все сообщения от mrfanat
 
Регистрация: 01.04.2011
Сообщений: 1

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 работает
		});
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с работой Slidera на jQuery UI Djohan jQuery 0 22.12.2010 17:49
Баг или проблема в другом ? lolka84 AJAX и COMET 6 03.11.2010 08:24
Проблема с mootools Sinclair Общие вопросы Javascript 6 08.02.2009 20:39