У меня есть два события, которые должны быть выполнены в следующем порядке:
вкладки переключаются в / из поля зрения
браузер перемещается к хеш-тегу, как обычно (переход вниз по странице к якору)
И мне нужно, чтобы он работал с кнопкой возврата.
Я написал свою собственную функцию gotoanchor()
, которая выполняет первые два, и, поскольку я перехожу на страницу с помощью location.href
, ход добавляется браузером в историю браузера.
Мне нужно, чтобы jQuery перехватывал кнопки «назад» и «вперед» и позволял скрывать / показывать вкладки перед прокруткой страницы.
Самый оптимистичный плагин, который я нашел, это jQuery Address
Это мой код в таком виде:
$("a[href^=#]").click(function(){
gotoanchor(this.hash);
return false;
});
$.address.externalChange(function(event) {
// do something depending on the event.value property, e.g.
gotoanchor(event.value);
});
У меня 3 проблемы:
обновление location.href
считается внешним изменением адреса и выполняет код в ответ на него. Я не могу просто позволить адресу управлять историей, потому что он не прокручивает страницу вниз, где находится хеш.
address тоже хочет обновить хеш самостоятельно. API довольно обширный, и я вполне уверен, что есть способ сказать, что нет, но в документации можно использовать какую-то работу.
это добавляет хеш # / # к моему URL, и я бы предпочел, чтобы это был просто # хэш
Спасибо!