jQuery как запретить стандартную обработку ссылок?
В этом посте мы рассмотри jQuery код который отменяет стандартную обработку ссылок, т.е. отменяет переход по указанному url в атрибуте href.
HTML код демо-примера:
<ul id="tabs"> <li class="tab"><a href="//webcomplex.com.ua">Ссылка №1</a></li> <li class="tab"><a href="//webcomplex.com.ua">Ссылка №2</a></li> <li class="tab"><a href="//webcomplex.com.ua">Ссылка №3</a></li> </ul>
jQuery код скрипта:
$("#tabs .tab").on("click", "a", function(e){ e.preventDefault(); //отменяем переход по ссылке alert("Нажата: " + $(this).text()); //выводим сообщение, что ссылка была нажата });
или так
$("#tabs .tab a").click(function(e){ e.preventDefault(); //отменяем переход по ссылке });
Переход по ссылке после подтверждение пользователем
По вопросам из комментариев, решил внести пример, когда пользователь должен подтвердить переход по ссылке.
$("#tabs .tab").on("click", "a", function(e){ e.preventDefault(); //отменяем переход по ссылке if ( confirm("Вы желаете перейти по адресу: " + $(this).attr('href')) ) { location.href = $(this).attr('href'); } });
Рубрика: Как сделать?
Спасибо Вам. Очень интересный скрипт. А трудно ли сделать, чтобы в alert выскакивала форма подтверждения, которая бы содержала блокируемую ссылку? То есть, своеобразное подтверждение от пользователя, что он действительно хочет перейти по ссылке.
Для того чтобы пользователь мог подтвердить или отменить открытие ссылки, можно сделать вариант с применением метода javascript – confirm().
Пример кода вы я сохранил по этой ссылке: Переход по ссылке после подтверждением пользователя
Скажите, а как в примере “//jsfiddle.net/b9qz2aoy/” делать переход по ссылке в том же окне браузера, а не в новом? Спасибо!
Для этого можно воспользоваться location.href, вот пример: Открытия ссылки после подтверждения пользователем (в текущем окне). Если остались вопросы, пишите – помогу 😉