Как проверить, не вызвано ли событие щелчком по какой-либо привязке / гиперссылке

#javascript #jquery #ecmascript-6

#javascript #jquery #ecmascript-6

Вопрос:

Пожалуйста, обратитесь к приведенному ниже фрагменту

 if (this.type.fullCarousel) {
  window.onbeforeunload = () => {
  window.scrollTo(0, 0)
}
  

Мне нужно остановить выполнение window.scrollTo(0, 0) , когда это событие вызвано щелчком по какой-либо гиперссылке.

В настоящее время, когда кто-либо нажимает на гиперссылку страницы, она сначала выводится в начало страницы и перенаправляется.

Как мне проверить, что эта строка выполняется, только если событие не вызвано каким-либо щелчком по привязке?

Спасибо!

Комментарии:

1. Вы могли бы проверить, является ли событие событием щелчка или event.target является тегом привязки

2. » если событие » — что это за событие? $(this).is("a") может быть достаточно

3. @empiric Спасибо за подсказку. Пожалуйста, проверьте реализацию в сообщении

Ответ №1:

Получение подсказки из комментариев @empiric. Вот как я обратился к требуемому

 if (this.type.fullCarousel) {
        window.onbeforeunload = () => {
            if (event.target.tagName.toString().toLowerCase() == "a" amp;amp;
                event.target.href.toString().toLowerCase().startsWith("http")) {
                    break;
                }
            window.scrollTo(0, 0)
        }