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

Ссылаясь на мой предыдущий вопрос, я столкнулся с другой проблемой. Показываемый мной блок содержит ссылки. Когда я нажимаю на них, 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, который я показываю со ссылками внутри него ...

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

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
123
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

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

Я не совсем понял, о чем вы .. где что добавить?

Subliminal Hash 16.01.2009 14:27

проверьте ответ redsquare - он объяснил это более подробно

Christoph 16.01.2009 14:29
Ответ принят как подходящий

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

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

Итак, в основном, если элемент, который вызвал событие щелчка, является якорем, не скользит вверх

$(document).one('click', function(ev) { 
    if ( !$(ev.target).is('a') ){
        $(el).slideUp().hide()
    }
});

Другие вопросы по теме