Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Закрытие списка при клике на любую область страницы (https://javascript.ru/forum/misc/28986-zakrytie-spiska-pri-klike-na-lyubuyu-oblast-stranicy.html)

Wolk_ 09.06.2012 19:55

Закрытие списка при клике на любую область страницы
 
Доброго времени суток, собственно вопрос обозначен в заголовке темы. Имеется простейший раскрывающийся по клику список, закрывается он по повторному клику на заголовок списка, а хотелось бы, чтобы при клике на любую область сайта.

Код списка:
function look(type){
 param=document.getElementById(type);
 if(param.style.display == "none") param.style.display = "block";
 else param.style.display = "none"
}


Подкиньте простейшее решение данного вопроса, думаю, что нужно копать в сторону target, но реализовать под имеющийся скрипт у меня не получилось.

Deff 09.06.2012 19:59

Wolk_,
:yes: Имхо - с двух секундной задержкой при отводе курсора от списка

devote 09.06.2012 20:45

<style type="text/css">
    #spisok {
        position: absolute;
        display: none;
        width: 100px;
        height: 100px;
        background-color: #00ff00;
    }
</style>
<div>
    <a href="" id="spisokOpenClose">Открыть</a>
    <div id="spisok">Список</div>
</div>
<script type="text/javascript">
    document.getElementById( 'spisokOpenClose' ).onclick = function( e ) {

        var spisok = document.getElementById( 'spisok' );

        e = e || window.event;

        if ( spisok.style.display == 'block' ) {
            spisok.style.display = 'none';
        } else {
            spisok.style.display = 'block';
        }
        if ( e.stopPropogation ) {
            e.stopPropagation();
        } else {
            e.cancelBubble = true;
        }

        return false;
    }

    document.onclick = function( e ) {

        var spisok = document.getElementById( 'spisok' );

        e = e || window.event;

        if ( ( e.target || e.srcElement ) !== spisok ) {
            spisok.style.display = 'none';
        }
    }
</script>

zerofx 10.11.2013 23:50

привет, у меня проблема ... хотел вынести скрипт в отдельный файл - но после этого мичого не работает ... подскажите что может быть не так ...


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