Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   переключатель? (https://javascript.ru/forum/events/29703-pereklyuchatel.html)

czp 07.07.2012 23:25

переключатель?
 
подскажите как сделать переключатель без Джейквери(появление и исчезновение блока)
попытался так
var button = document.getElementById('sMenuButton'),
      menu = document.getElementById('sMenu');
 
  button.onclick = function() { 
    var clicked = menu.getAttribute('style');
   
    if (!clicked) { 
      menu.setAttribute('style', 'display:block;');  
	  document.body.onclick = function() { remAttribute(menu, 'style'); };
	  event.cancelBubble = true;
    }
  };
  
  menu.onclick = function() { event.cancelBubble = true; };

в Опере и Хроме, и ИЕ пашет все четко, а вот Мозила брыкается, что подскажете?

vadim5june 07.07.2012 23:34

я так делаю обычно
var button = document.getElementById('sMenuButton'),
 menu = document.getElementById('sMenu');
button.onclick = function(e) {if(menu.style.display!='none')menu.style.display='none';else
menu.style.display='block';
};

czp 07.07.2012 23:35

ну так нужно еше сделать что бы, если кликаешь не по блоку(в любом месте body), то скрывало его

vadim5june 07.07.2012 23:41

Цитата:

Сообщение от czp (Сообщение 187164)
ну так нужно еше сделать что бы, если кликаешь не по блоку(в любом месте body), то скрывало его

var button = document.getElementById('sMenuButton'),
 menu = document.getElementById('sMenu');
button.onclick = function(e) {if(menu.style.display!='none')menu.style.display='none';else
menu.style.display='block';e=e||window.event;if(e.cancelBubble) e.cancelBubble = true;else
e.returnValue=false;
};
document.body.onclick = function() {menu.style.display='none'; };

czp 07.07.2012 23:51

спасибо, сделал по своему, но ваш код помог найти мне ошибку, благодарю, огромное спасибо))


Часовой пояс GMT +3, время: 07:50.