Почему не работает
<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> обработчик не вешается |
menuHead — что за переменная, и откуда взялась? |
я добавил
даже если пропишу строку с переменными, ничего не заработает тьфу header конечно щас попробую |
всё равно не пашед
|
добавил в свой код иннерхтмл
запахало |
разбор полётов )))
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> |
спс
но у меня файрфокс и выполнял я это через файрбаг |
Часовой пояс GMT +3, время: 14:13. |