Прыжок по странице на span.click () - PullRequest
2 голосов
/ 15 января 2012

У меня происходит странная вещь: при нажатии на пролеты в навигации контент должен переключаться. Все работает, за исключением того, что когда вы нажимаете на промежуток, страница переходит на него (тогда промежуток будет прямо вверху). Все, что я нахожу о переходах по страницам, касается тегов привязки и возврата false; но ничего о пролетах. По моему мнению, переключение контента не может быть виновато, потому что никогда не бывает только одного div, у которого есть display: none (и если бы это было так, страница должна перейти наверх вместо перехода на промежуток, верно?) Предотвращение каких-либо действий не работает на пролетах.

$("#subnavi span").click(function(){
    $("#inner-content div:visible").animate({height: "toggle", opacity: "toggle"}, "slow");
    $("#content-"+this.id).animate({height: "toggle", opacity: "toggle"}, "slow");
    $("#subnavi span").attr("class", "");
    $(this).attr("class", "active");
});

Если объяснение сбивало с толку, перейдите сюда: http://gaming -siblings.com / v2.0 / # news и нажмите Статистика в навигации слева. Страница перейдет к промежутку, который вы только что щелкнули, и немного прокрутится назад из-за высоты div. Почему он прыгает на пролет?

Это, наверное, не странно, но разумно. Я просто не понимаю: -)

Я пробовал это в течение 2 дней, делая перерывы, потому что это в основном помогает, но не в этот раз.

Есть идеи / решения? Как уже упоминалось, верните false; или warnDefault () не работало, когда я пытался (потому что я думаю, что это пролеты).

1 Ответ

0 голосов
/ 15 января 2012

Я заметил эту дополнительную строку в вашей функции click():

document.location.hash = "#" + this.id;

Это причина перехода - вы добавляете хеш к URL-адресу страницы, чтобы страница автоматически прокручивалась до этого якоря (в этом случае она будет прокручиваться до элемента, по которому был выполнен щелчок). вы добавляете его id).

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

...