Нажатие на якорь переводит меня на дно, а не восстанавливает предыдущую позицию. - PullRequest
0 голосов
/ 01 апреля 2011

Я действительно застрял с этой проблемой. Любая помощь будет велика.

Я нажимаю на ссылку, которая расширяет содержимое, и когда я щелкаю по кнопке скрытия, вместо того, чтобы перейти к ссылке «Развернуть», это приводит меня к сути. Я уже пробовал такие варианты, как onclick = "fun () возвращает false "и href = javascrpit: void (0), но не может помочь.

PLease см. http://jsfiddle.net/BdsyJ/ по этой ссылке и нажмите «Как увеличить срок службы батареи», а в нижней части вы получите кнопку скрытия, которая должна вернуть элемент управления Click it вместо того, чтобы поместить страницу в дно.

Спасибо, ребята.

Ответы [ 2 ]

2 голосов
/ 02 апреля 2011

Я изменил ваш ReverseDisplay() метод на этот, и он прекрасно работает:

        function ReverseDisplay(d) {            
            $("#" + d).toggle();

            $('html, body').animate({
                scrollTop: $("#" + d).prev().offset().top
            }, 100);          
        }

вот рабочий пример:

http://jsfiddle.net/hunter/BdsyJ/5/


Весли вам интересно; ДА Ваш HTML неверен.<li> элементы не должны иметь <div> братьев и сестер.

1 голос
/ 02 апреля 2011

Вы находитесь внизу страницы, потому что вы спрятали так много контента.Две вещи, которые я бы обновил в вашем коде:

  1. кэшируйте поиск элемента, чтобы вы делали это только один раз, и
  2. прокрутите страницу вверх, после того как вы закроете ее, используя scrollTo(0,0) или что-то более сложное, если вам нужно прокрутить обратно к тому элементу, который вы переключили.

Код:

function ReverseDisplay(d) {
  var el = document.getElementById(d);
  el.style.display = (el.style.display == "none")?"block":"none";
}
...