Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.06.2010, 18:48
Аватар для KOLANICH
Профессор
Отправить личное сообщение для KOLANICH Посмотреть профиль Найти все сообщения от KOLANICH
 
Регистрация: 22.11.2008
Сообщений: 277

Почему не работает
<html>
<head>
<script>function closeMenu(){
	menuBody.style.display="none";
	menuState=false;
}
function dropDown(){
	menuBody.style.display="block";
	menuState=true;
}
function menuView(){
	
	if(menuState)
		closeMenu();
	else 
		dropDown();
		
	alert("Works");
}
var menuCss=document.createElement('link');
		menuCss.setAttribute('type', 'text/css');
		menuCss.setAttribute('href', "http://gmapihtml5.googlecode.com/files/gmapi.css");
		menuCss.setAttribute('rel', 'stylesheet');
		document.getElementsByTagName('HEAD')[0].appendChild(menuCss);
		
		
		
		menu=document.createElement('div');
		document.body.appendChild(menu);
		
		
		menu.className="GMMenu";
		menuHeader=document.createElement('div');
		menu.appendChild(menuHeader);
		menuHeader.className="GMMenuHeader";
                menuHeader.innerHTML="preved";//чтобы знать, куда кликать,потом эта строка уберётся
		
		
		menuBody=document.createElement('div');
		menuBody.className="GMMenuBody";
		menu.appendChild(menuBody);
		
		
		menuHeader.addEventListener("click",menuView,false);</script>
</head>
<body></body>
</html>

обработчик не вешается

Последний раз редактировалось KOLANICH, 20.06.2010 в 18:58.
Ответить с цитированием
  #2 (permalink)  
Старый 20.06.2010, 18:52
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

menuHead — что за переменная, и откуда взялась?
Ответить с цитированием
  #3 (permalink)  
Старый 20.06.2010, 18:54
Аватар для KOLANICH
Профессор
Отправить личное сообщение для KOLANICH Посмотреть профиль Найти все сообщения от KOLANICH
 
Регистрация: 22.11.2008
Сообщений: 277

я добавил
даже если пропишу строку с переменными, ничего не заработает
тьфу
header конечно
щас попробую
Ответить с цитированием
  #4 (permalink)  
Старый 20.06.2010, 18:55
Аватар для KOLANICH
Профессор
Отправить личное сообщение для KOLANICH Посмотреть профиль Найти все сообщения от KOLANICH
 
Регистрация: 22.11.2008
Сообщений: 277

всё равно не пашед
Ответить с цитированием
  #5 (permalink)  
Старый 20.06.2010, 18:59
Аватар для KOLANICH
Профессор
Отправить личное сообщение для KOLANICH Посмотреть профиль Найти все сообщения от KOLANICH
 
Регистрация: 22.11.2008
Сообщений: 277

добавил в свой код иннерхтмл
запахало
Ответить с цитированием
  #6 (permalink)  
Старый 20.06.2010, 23:23
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

разбор полётов )))
document.body.appendChild(menu);
document.body к этому моменту ещё нет
поэтому лучше работать с dom после window.onload
переменные var menuState=true,menuBody; находятся вне зоны видимости
Internet Explorer об эту строчку запнёться menuHeader.addEventListener("click",menuView,false ); поэтому лучше кросс-браузерно http://javascript.ru/tutorial/events/crossbrowser
и того :
<html>
<head>
<script>
var menuState=true,menuBody;
function closeMenu(){
	menuBody.style.display="none";
	menuState=false;
}
function dropDown(){
	menuBody.style.display="block";
	menuState=true;
}
function menuView(){

	if(menuState)
		closeMenu();
	else
		dropDown();

	alert("Works");
}
window.onload=function (){
var menuCss=document.createElement('link');
		menuCss.setAttribute('type', 'text/css');
		menuCss.setAttribute('href', "http://gmapihtml5.googlecode.com/files/gmapi.css");
		menuCss.setAttribute('rel', 'stylesheet');
		document.getElementsByTagName('HEAD')[0].appendChild(menuCss);



		menu=document.createElement('div');
        document.body.appendChild(menu);
        menu.className="GMMenu";
		menuHeader=document.createElement('div');
		menu.appendChild(menuHeader);
		menuHeader.className="GMMenuHeader";
        menuHeader.style.height="100px";// для теста кликать
        menuHeader.style.width ="100px";// для теста
        //menuHeader.innerHTML="preved";//чтобы знать, куда кликать,потом эта строка уберётся


		menuBody=document.createElement('div');
		menuBody.className="GMMenuBody";
        menuBody.innerHTML="preved";// для теста
        menu.appendChild(menuBody);
        if (menuHeader.addEventListener)

           menuHeader.addEventListener("click", menuView, false)

       else if (menuHeader.attachEvent)

          menuHeader.attachEvent("onclick", menuView)





		}</script>
</head>
<body></body>
</html>
Ответить с цитированием
  #7 (permalink)  
Старый 20.06.2010, 23:28
Аватар для KOLANICH
Профессор
Отправить личное сообщение для KOLANICH Посмотреть профиль Найти все сообщения от KOLANICH
 
Регистрация: 22.11.2008
Сообщений: 277

спс
но у меня файрфокс и выполнял я это через файрбаг
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему это работает? (инклуд JS в JS) Василий Б. Общие вопросы Javascript 4 11.06.2010 12:41
Почему не работает document.getElementById() giGnet Events/DOM/Window 3 18.04.2010 14:30
Почему скрипт работает в IE6 и не работает в opera и IE8? msufx Javascript под браузер 6 18.09.2009 18:44
Почему не работает функция? Vitaly jQuery 10 31.07.2009 17:01
Почему не работает скрипт, подскажите aviaks Ваши сайты и скрипты 2 05.05.2009 14:38