|
Повторный клик по ссылке через время
Подскажите, как реализовать скрипт, который запретит часто нажимать на ссылку, точнее запретит на время. Если быть совсем точным, то человек после нажатия ссылки повторно сможет нажать только через час, например:D
|
Мне подсказали в чате код, но я толком не смог разобраться:
onclick="var a = this.href, t = this; t.href ='#'; setTimeout(function() { t.href = a }, 1000)" Хотелось бы на примере посмотреть |
При клике по ссылке запоминаешь время в localStorage. При последующем клике сначала проверяешь сколько времени прошло, и в случае чего предотвращаешь переход по ссылке.
|
а можно на примере показать?
|
Цитата:
Вот мой вариант <!DOCTYPE html> <html> <head> <script src="http://code.jquery.com/jquery-latest.js"></script> <!-- <link rel="stylesheet" type="text/css" href="tmp.css" /> --> <style type="text/css"> </style> <script type="text/javascript"> $(document).ready(function (){ $('a').click(function (){ var o=$(this); if (o.data('on')==0) { alert('Действие приостановлено'); return }; alert('Действие выполнено'); o.data('on',0); setTimeout(function (){ o.data('on',1); },3000); }); }); </script> </head> <body> <a href='#' data-on='1'>test</a> </body> </html> |
Я думал под ссылкой подразумевается ссылка, а не кнопка. Почему люди не хотят называть вещи своими именами?
<a href="#">Ссыль</a> <script> var delay = 1000 * 2; // 2с var link = document.querySelector('a'); link.onclick = function() { var lastTime = +localStorage.lastTime; var nowTime = +new Date(); if (lastTime && (lastTime + delay > nowTime)) { alert ('Низя!'); return false; } else { localStorage.lastTime = nowTime; } } </script> |
Цитата:
|
danik.js,
неплохая идея)) |
а вот ещё вопрос, этот скрипт будет сразу для всех выполняться или для каждого персонально?
|
Цитата:
В примере присваивается всем элементам "a"... |
Часовой пояс GMT +3, время: 19:42. |
|