2010-01-16 2 views
0

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

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

Пример ссылка используется:

<a class="share-this" href="#">Share This</a> 

ответ

1

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

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

При нажатии на ссылку она собирается в «#», указанного в HREF, который является то, что имеет экран в верхней части.

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

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

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

или:. '$ (». Разделённый это ') toggleClass (' некоторые-класса, что-это-переключены ') .click (функция (e) { return false; }); ' – Tarik

+0

@Aaron, который тоже будет работать, но важно отметить, что return false немного отличается http://stackoverflow.com/questions/1357118/javascript-event-preventdefault-vs-return-false –

+0

Спасибо за информацию еще раз. Приятно узнать такую ​​другую информацию :) – Tarik

1

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