Вопрос

У меня есть очень простой toggleClass, который изменяет внешний вид ссылки при нажатии на нее.Отлично работает, за исключением одной вещи.Каждый раз, когда я нажимаю на ссылку, фокус браузера снова смещается к верхней части страницы.Это становится довольно раздражающим, если ссылка находится в самом низу страницы.

Я мог бы использовать другой элемент, такой как span of coarse, но мне любопытно узнать, есть ли решение моего вопроса.

Пример используемой ссылки:

<a class="share-this" href="#">Share This</a>
Это было полезно?

Решение

или эта функция также может помочь :

$('.share-this').toggleClass('some-class-that-is-toggled').click(function(e) {
    return false;
});

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

Когда вы нажимаете на ссылку, она переходит на '#', указанный в href, который выводит ваш экран наверх.

Что вам нужно сделать, так это предотвратить это действие браузера по умолчанию.Вы можете сделать это, обработав событие click и предотвратив его всплывание (которое затем обработает браузер).

Вы можете запретить действие щелчка по умолчанию следующим образом:

$('.share-this').toggleClass('some-class-that-is-toggled').click(function(e) {
    e.preventDefault();
});

Зачем использовать ссылку, если вы никуда не собираетесь?Просто добавьте код переключения к какому-нибудь другому типу элемента.Это не только позволит избежать обхода, но и будет более семантически корректным и понятным в обслуживании.

Решение ->

<a class="share-this" href="javascript:void(0);">Share This</a> 

Это происходит из-за того, что href="#" использует "javascript:void(0);" вместо #.

это также изменяет ваш URL, например

http://localhost:8080/appname Для http://localhost:8080/appname#

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top