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



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы должны добавить свои собственные прослушиватели событий к ссылкам и вызвать event.stopPropagation() внутри.
проверьте ответ redsquare - он объяснил это более подробно
Вам нужно привязать свои ссылки к событию щелчка и остановить всплытие, чтобы документ не получил всплывающий щелчок.
Я думаю, что лучший подход к тому, чтобы избежать привязки нескольких событий щелчка, - это прослушивать щелчок привязки внутри щелчка doucument.
Итак, в основном, если элемент, который вызвал событие щелчка, является якорем, не скользит вверх
$(document).one('click', function(ev) {
if ( !$(ev.target).is('a') ){
$(el).slideUp().hide()
}
});
Я не совсем понял, о чем вы .. где что добавить?