Правильный show/toggle
Приветствую всех форумчан, есть выпадающее меню
http://jsfiddle.net/rqVw6/ В нем баг, работать начинает только на 2 клик, нашел как сделать правильный эффект, однако не получается, прошу помощи у тру кодеров кривой код
function toggle_show(id) {
document.getElementById(id).style.display = document.getElementById(id).style.display == 'none' ? 'block' : 'none';
}
http://javascript.ru/ui/show-hide-toggle |
попробуйте так
function toggle_show(id) {
document.getElementById(id).style.display = getStyle(document.getElementById(id),'display') != 'none' ? 'none ':'block' ;
}
//-----
function getStyle(element,CSSProperty)
{ return (typeof getComputedStyle == "undefined" ? element.currentStyle : getComputedStyle(element, null))[CSSProperty];
}
|
<input type=button value="Клик" onclick="toggle_show('Clk')"><div id="Clk" style="background:green;width:260px;height:170px;" "></div>
<script>
function toggle_show(id) {
var el=document.getElementById(id)
el.style.display = el.style.display == 'none' ? 'block' : 'none';
}
</script>
|
Deff, вроде не новичек, а ключевое слово var потерял. А идея правильная
|
<div class="menuleft">
<ui>
<li><a href="#">Заголовок</a></li>
<li>Меню 1</li>
<li>Меню 2</li>
<li>Меню 3</li>
</ui>
<ui>
<li><a href="#">Заголовок 2</a></li>
<li>Меню 4</li>
<li>Меню 5</li>
<li>Меню 6</li>
</ui>
</div>
document.getElementsByClassName('menuleft')[0].onclick = function()
{
var e = event || window.event;
if(e.target.tagName == 'A')
{
var li = this.parentNode.parentNode.getElementsByTagName('li');
for(i=1; i<li.length; i++) li[i].style.display = li[i].style.display ? '' : 'none';
}
}
:write: |
Цитата:
|
| Часовой пояс GMT +3, время: 16:23. |