Сокрытие Элементов - PullRequest
       7

Сокрытие Элементов

0 голосов
/ 16 января 2009

, ссылаясь на мой предыдущий вопрос Я столкнулся с другой проблемой. Div, который я показываю, включает в себя ссылки. Когда я нажимаю на них, div исчезает, как и ожидалось, но не так, как хотелось бы ... (мы хотим, чтобы он исчезал всякий раз, когда мы нажимаем в любом месте страницы ... но ссылки внутри них)

код, используемый в настоящее время:

   $.listen('click', '.tabImg', function(event) {
                var el = $('#tabs_menu');
                var dv = $('.tabImg').parent();

                var pos = dv.offset();


                $(el).show();
                $(el).css( {"position": "absolute", "left": (pos.left) + "px", "top":20 + pos.top + "px" } );

                $(document).one('click', function()
                { 
                    $(el).slideUp().hide()
                });
                event.stopPropagation();
    });

tabs_menu - это div, который я показываю со ссылками внутри него ...

Какой обходной путь для этого?

Ответы [ 2 ]

1 голос
/ 16 января 2009

Вам необходимо привязать свои ссылки к событию щелчка и остановить всплывающее окно, чтобы документ не получил всплывающее нажатие.

Я думаю, что лучший способ избежать привязки нескольких событий щелчка состоит в том, чтобы прослушивать щелчок привязки внутри щелчка элемента.

Так что, в принципе, если элемент, вызвавший событие click, является якорем, не скользите вверх

$(document).one('click', function(ev) { 
    if ( !$(ev.target).is('a') ){
        $(el).slideUp().hide()
    }
});
0 голосов
/ 16 января 2009

Вы должны добавить своих собственных слушателей событий в ссылки и вызвать event.stopPropagation() внутри.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...