Как мне обработать щелчок в любом месте страницы, даже когда определенный элемент останавливает распространение?

Мы работаем над инструментом JavaScript, в котором есть более старый код, , поэтому мы не можем повторно -пишите весь инструмент.

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

Технически это может работать с событием click в теле , запускающимся при любом щелчке, однако в старом коде есть множество элементов, где щелчок событие было обработано для внутренней ссылки, и return false был добавлен в функцию щелчка, чтобы сайт не продолжал переходить к тегу ссылки href .

Очевидно, что такая общая функция действительно работает, но не при нажатии на внутреннюю ссылку, где возврат false останавливает распространение.

$('body').click(function(){
  console.log('clicked');
});

Есть ли способ принудительно вызвать событие щелчка по телу, или есть другой способ позволить меню исчезнуть, используя какое-то глобальное событие щелчка или что-то подобное?

Без необходимости перезаписывать все другие щелчки в приложении, которые были созданы много лет назад. Это было бы чудовищной задачей, тем более что я понятия не имею, как бы их переписать без возврата false, но все же не позволяю им переходить к их href .

34
задан Felix Kling 8 November 2011 в 17:44
поделиться