2013-08-27 4 views
0

У меня есть элемент аккордеона, и мне нужно, чтобы разные панели расширялись на hashchange. Код, который я сделал, расширяет его, но он не прокручивает целевой div, а страница никогда не заканчивает загрузку.hashchange предотвращает прокрутку до целевого div

function hashChange() { 
    if (window.location.hash === '#senior-backend') { 
     $('#senior-backend, #backend-developer, #senior-frontend, #frontend, #dev-ops').hide(50); 
     $('#senior-backend').show(50); 
     $('#job-posts').removeClass().addClass('beige-bg'); 
     $('#job-posts-top').removeClass().addClass('beige-spikes'); 
    } 
} 

window.onhashchange = hashChange; 

Не могли бы вы указать, что я делаю неправильно.

Благодаря

ответ

1

Вам необходимо прокрутить сайт с помощью animate когда вы обнаружили изменения в хэш, например:

var dest = $('#yourSelector').position(); 
var dtop = dest.top; 

$('html, body').animate({ 
    scrollTop: dtop 
}); 

Живая демонстрация: http://jsfiddle.net/LZbK8/

+0

спасибо, просто из любопытства, почему он не прокручивается по умолчанию? а также страница еще не полностью загружена, индикатор прогресса останавливается в какой-то момент, любая идея, что мешает ей? –

+0

Если бы вы использовали якорные ссылки, такие как ''. [Здесь] (http://jsfiddle.net/LZbK8/1/) у вас есть тот же пример без jQuery, который я добавил ранее: http://jsfiddle.net/LZbK8/1/ Прокрутка по умолчанию работает только для привязки ссылок , а не для селекторов jQuery, таких как 'id' или' class'. – Alvaro

+0

Страница никогда не загружается, вероятно, отдельная проблема. У вас есть внешний контент (то есть что-нибудь из другого домена), загружаемое на страницу? И этот сайт работает и работает? Вы должны уметь видеть, что происходит в инструментах разработчика вашего браузера. –

Смежные вопросы