Триггер изменения хэша адреса jQuery, даже если хеш не изменяется
Я использую этот плагин http://www.asual.com/jquery/address/ для обнаружения изменений хеша и тому подобного для моего веб-сайта, он использует его только для навигации, поэтому он является важной частью работы пользователей. Теперь это работает отлично для всего, что я делаю с ним, за исключением того, что оно не вызывает событие, если хеш не изменяется / не отличается от последнего URL-адреса хеша, который был нажат, например, если я на примере. com / home и снова щелкните значок домашней страницы, он не перезагрузит страницу снова, как если бы вы просто использовали обычные ссылки. Я не смог выяснить, как добиться этого для всех ссылок, которые являются частью URL. (не только все теги, потому что я использую теги, не будучи навигационной частью. Так что любая помощь будет отличной, спасибо.
$.address.change(function(event){
///events to be triggered on hash change
});
1 ответ
Событие onhashchange названо удачно, оно срабатывает только при изменении хэша.
Единственное известное мне решение этой проблемы - привязать ту же функцию к событию click на главной странице.
Кроме того, jQuery предоставляет собственное событие для изменения хеша:
$(window).on("onhashchange", function (e) {
route();
})
$(".icon").on("click", function(e) {
location.hash == "#/" ? route(): null;
})
Также, если это теги, скажем, в #nav div:
$("#nav").delegate("a", "click", function () {
location.hash == this.href ? route() : null;
})
Или это может быть применено ко всем тегам:
$("a").on("click", function () {
location.hash == this.href ? route() : null;
})