Jquery - Показать / Скрыть - всегда переходит вверх по странице при клике - PullRequest
3 голосов
/ 22 февраля 2010

Я использую JQuery показать / скрыть функциональность в форме (генерируется с помощью PHP)

В этой форме есть 10 скрытых элементов, и каждый раз, когда пользователь нажимает на ссылку «добавить еще», он отображает следующий скрытый элемент, и мой нижний колонтитул исчезает вместе с ним. Пока все хорошо.

Теперь проблема в том, что после того, как отображаются 2 или 3 скрытых элемента, страница становится больше и появляется правая полоса прокрутки навигации от Firefox, что хорошо, но когда я нажимаю на следующую ссылку «добавить еще», навигация полоса прокрутки перемещается назад к верхней части страницы, пока отображается скрытый элемент. Каждая ссылка, которая добавляет новый скрытый элемент, заставляет страницу перебираться наверх, и я не хочу, чтобы это поведение ...

Кто-нибудь знает способ исправить это?

Ответы [ 2 ]

5 голосов
/ 22 февраля 2010

Является ли «добавить еще» фактическим a элементом с обработчиком клика, который добавляет новое содержимое?

Если это так, вы, вероятно, хотите event.preventDefault(). Попробуйте что-то вроде этого:

$('.myClickedLink').click(function(event) {

    event.preventDefault();
    // Run my code

})

Это предотвращает поведение ссылки по умолчанию. Я предполагаю, что именно это заставляет вашу страницу каждый раз возвращаться наверх.

РЕДАКТИРОВАТЬ: Сначала в моем коде я ошибочно набрал stopPropagation () вместо warnDefault (). Это было правильно в тексте выше, хотя. К сожалению.

3 голосов
/ 23 февраля 2010

Как насчет добавления возврата false в конце события щелчка

...