Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Скрытие блока по клику (https://javascript.ru/forum/dom-window/48421-skrytie-bloka-po-kliku.html)

cript 03.07.2014 02:38

Скрытие блока по клику
 
Приветствую!
Есть такой код
function UserMenu(num) 
{
$('body').attr("onclick","hideusermenu('1',"+num+")");
$('#playermenu'+num).fadeIn(400);
}

last_num=null;
function hideusermenu(click,num) 
{
if((last_num!=null) && (last_num!=num))
{
$("body").attr("onclick","hideusermenu('2',"+num+")");
$('#playermenu'+last_num).fadeOut(400);
}
else
{
if(click == 1)
{
$("body").attr("onclick","hideusermenu('2',"+num+")");
$('#playermenu'+num).fadeIn(400);
}
if(click == 2)
{
$("body").attr("onclick","hideusermenu('1',"+num+")");
$('#playermenu'+num).fadeOut(400);
}
}
last_num=num;
}

<body onclick="hideusermenu(1,0);">
...
<div onclick="UserMenu('1');">
<div id="playermenu1" style="display:none"></div>
</div>
<div onclick="UserMenu('2');">
<div id="playermenu2" style="display:none"></div>
</div>
<div onclick="UserMenu('3');">
<div id="playermenu3" style="display:none"></div>
</div>
</body>

При клике на определенный блок вызывается функция которая открывает соответствующее меню.
Все практически работает кроме одного: если в дальнейшем кликать по body то последнее вызванное меню так же будет открываться и закрываться, в чем тут ошибка?


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