Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 11.01.2012, 13:25
Аватар для poorking
prodigy
Отправить личное сообщение для poorking Посмотреть профиль Найти все сообщения от poorking
 
Регистрация: 01.11.2010
Сообщений: 503

//	У вас есть кнопка. На кнопке, на событии click висит обработчик-функция,
//	когда вы кликаете по кнопке, функция запускается
	
//	Создаем анонимную функцию и тут же ее вызываем,
//	чтобы замкнуть внутри некоторые данные, а эта анонимная функция уже вернет нашу
//	функцию обработчик, которую мы сохраним в ссылке под именем toggleMenu
//	которую мы и будем в итоге использовать
var toggleMenu = (function () {
	
	//	Ширина фрейма меню. Я предположил что она заранее известна
	var DEFAULT_MENU_WIDTH = 200;	//	или любое другое значение в пикселах
	
	//	Ширина фрейма, когда меню скрыто
	var HIDDEN_MENU_WIDTH = 0;	//	или любое друго значение
	
	//	Статическая ссылка на фреймсет, чтобы не делать
	//	выборку каждый раз, получаем ее сразу
	var frame = top.document.getElementsByTagName("frameset")[0];	//	или другая выборка, по id например
	
	//	Это сама функция, которую возвращает наша анинимная функция
	return function () {
		
		//	Получаем значение атрибута cols фреймсета, раз вы выбрали
		//	такой путь скрытия меню, то по значению этого атрибута мы узнаем,
		//	скрыто или открыто меню.
		var colsValue = frameset.getAttribute(cols);
				
		//	Если значение атрибута имеется и первый его символ равен 0,
		//	то значит, что ширина левогог фрейма равна нулю, значит "меню скрыто"
		if ( colsValue && colsValue.clarAt(0) ) {
				
			//	Значит надо его показать
			
			//	Получаем новое значение атрибута cols из нашщей "константы" DEFAULT_MENU_WIDTH,
			//	а значение ширины второго фрейма - все оставшееся пространство(*)
			colsValue = MENU_WIDTH + ", *";
			
			//	Устанавливаем новое значение атрибута cols
			frameset.setAttribute("cols", colsValue);
			
		} else {
			
			//	Если меню не скрыто, то оно открыто (O_O)
	
			//	Получаем новое значение
			colsValue = HEDDEN_MENU_WIDTH + ", *";
			
			//	Устанавливаем
			frameset.setAttribute("cols", colsValue)
		}
	}
				
	//	Итого, по клике на кнопку "Скрыть/развернуть меню",
	//	наш обработчик события click сам определил, скрыто меню или нет, и выбрал нужное действие
}());

//	Теперь просто нужно повесить эту функцию обработчиком на событие click


Поподробнее расписал, но сделал вывод что знаний по предмету у вас нет, все равно все кончится тем, что вы пойдете читать учебник на этом сайте, если, конечно, заинтересутесь
__________________
readOnly

Последний раз редактировалось poorking, 11.01.2012 в 13:27.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выдвет ошибку JavaScript Ромио Opera, Safari и др. 4 21.10.2010 20:34