Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Скрыть слой если щелкнули не по нему (https://javascript.ru/forum/jquery/16567-skryt-slojj-esli-shhelknuli-ne-po-nemu.html)

_axl 13.04.2011 08:10

Скрыть слой если щелкнули не по нему
 
Хочу сделать скрипт, который будет скрывать слой (включающий n вложенных элементов), если мышкой щелкнули не по нему. Пока не придумал ничего лучше чем проверять всех родителей элемента по которому щелкнули, если среди них нет искомого, то его закрываем:
$(document).bind("click", function(e){
            var close = true;
            var id    = picker.attr('id');

            if( $(e.target).attr('id') == id){
                close = false;
            }else{
                $(e.target).parents().each(function(){
                    if( $(this).attr('id') == id){
                        close = false;
                    }
                });
            }

            if(close){
                picker.hide();
            }
        });

Может можно как-то более оптимизированно?


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