Почему не работает
<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, время: 00:37. |