<button class="progress-button" data-uri="https://toster.ru/q/311167?e=3769167#comment_1058109" data-target="_blank">Как сделать задержку на открытие ссылки?</button>
<button class="progress-button" data-uri="http://yandex.ru" data-target="_self">Еще одна кнопка...</button>
$(document).ready(function() {
$(function() {
var flag = new Boolean(true); // Защитит от частого нажатия на кнопку
// Клик
$('.progress-button').click(function(e) {
openUrl($(this));
e.preventDefault();
})
/**
* Открывает ссылку с задержкой
*
* @param {object} button - Нажатая кнопка
* @return {boolean}
*/
function openUrl(button) {
var delay = 2000, // Задержка 2 секунды
text = button.text(), // Текст который будет задан кнопке после окончания загрузки
uri = button.attr('data-uri'); // URL
// Проверяем не начата ли загрузка какой-либо ссылки
if (flag == true) {
flag = false;
// Показываем загрузку
button.text('загружаю...');
// С задержкой открываем URL, возвращая штатный текст кнопке, разрешаем открывать новые ссылки
setTimeout(function() {
flag = true;
button.text(text);
// Проверяем открыть ссылку в новом окне или в текущем
if (button.attr('data-target') === '_blank') {
window.open(uri);
return;
}
window.location = uri;
return;
}, delay);
}
return;
}
});
});
.activeButton {
background-color: yellow;
<h2 class="ui icon header">
<i class="settings icon"></i>
<div class="content">
Настройки аккаунта
<div class="sub header">Описание раздела</div>
</div>
</h2>
.header {
background-color: #000;
color: #FFF;
}
.description {
font-size: 24px;
padding-top: 5px;
}
<h1 class="header title">Большой заголовок</h1>
<div class="header description">Маленький заголовок</div>