Добавление задержки к ссылке

Я искал этот вопрос и пришел к выводу, что

$("a").click(function(e){
    e.preventDefault();
    var link = $(this).attr("href");
    setTimeout(function() {
    alert(link);
        window.location.href = link;
    }, 1000);
});

Однако должно работать так, как мне нравится, когда я использую его, вместо этого он перейдет в то место, где установлена ​​ссылка.

Ссылка есть при регистрации мероприятия?

Roland Starke 02.10.2018 12:48

Если я могу спросить, зачем вам это нужно? Поскольку он нарушает стандартные функции, предлагаемые браузером, такие как открытие ссылки в новой вкладке, нажав Ctrl + Mouse 1.

Jon Koops 02.10.2018 12:50

alert (), вероятно, возится с вами. К тому времени, как вы закроете alert (), 1 секунда уже пройдет, и вы будете перенаправлены. Удалите alert () и / или увеличьте время ожидания, и вы, вероятно, увидите, что код работает должным образом. Я не вижу ничего явно неправильного в коде, по крайней мере, на первый взгляд. Но не видя разметки, это трудно увидеть. Ваш код отлично работает здесь: jsfiddle.net/5ea9pr18

HaukurHaf 02.10.2018 12:51

@HaukurHaf, насколько мне известно, alert() является синхронным и блокирует выполнение всего кода в этот момент, пока не будет отклонен.

Jon Koops 02.10.2018 13:02

Да, я думаю, вы правы в том, что предупреждение является синхронным.

HaukurHaf 02.10.2018 13:04

"когда я использую его, вместо этого он перейдет в то место, на которое установлена ​​ссылка" - значит до показывает алерт? Или как только вы закроете оповещение? Отображается ли предупреждение через 1 секунду? Измените свой alert на console.info, а затем просто посмотрите консоль браузера (с сохранением входа в систему) - если вы видите журнал, значит, он работает нормально.

freedomn-m 02.10.2018 13:14
Поведение ключевого слова "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
6
72
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Ваш код действительно в порядке. Тем не менее, вы можете рассмотреть возможность достижения этой цели другим способом, поскольку вы нарушите стандартную функциональность события a.

$(document).on('click', 'a', function(e){
    e.preventDefault();
    var link = $(this).attr("href");
    setTimeout(function() {
       alert(link);
       window.location.href = link;
    }, 1000);
});
<script src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<a href = "https://www.google.com">Click me</a>

Пожалуйста, добавьте комментарий о том, какой «другой способ» вы использовали и как он решает проблему для OP / проблему «нарушения функциональности по умолчанию для события a).

freedomn-m 02.10.2018 13:09

Попробуй это:

<!DOCTYPE html>
<html>
<head>
    <meta charset = "UTF-8">
    <title>Dev</title>
<script src = "https://code.jquery.com/jquery-3.3.1.min.js" integrity = "sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8 = "    crossorigin = "anonymous"></script>
</head>
<body>
  <a href = "https://localhost/sip-js"> test </a>
</body>
<script>
 $("a").click(function(e){
    var link = $(this).attr("href");
    setTimeout(function() {
    alert(link);
        window.location.href = link;
    }, 5000);
    e.preventDefault();
});
</script>
</html>

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