Учитывая ваши требования, похоже, что onhashchange
событие window
было бы более уместным:
window.onhashchange = function() {
alert(window.location.hash);
}
Обновленная скрипка
Во время функции события jQuery click я понимаю, что событие click запускается до завершения базового события (и URL обновляется) ... поэтому вы можете управлять событием. Это означает, что хэш ссылки еще не доступен черезwindow.location.hash
Является ли e.target.hash
лучше , чем достижения в <a>
самом элемент , чтобы получить хэш - значение; или передать необходимую переменную через onclick
событие? «Лучше» определяется как совместимость между браузерами или более подвержена ошибкам.
Например:
<a class="accountLink" href="#account/123456">Account 123456</a>
$('.accountLink').click(function(e){
console.log(e.target.hash);
console.log(window.location.hash);
});
Журнал:
#account/123456
(blank on initial click)
https://jsfiddle.net/r1xpsut1/1/
Согласно Mozilla Web API , Event.target
поддерживается в каждом современном браузере, за исключением Internet Explorer 6-8, где Event.srcElement
используется вместо этого, поэтому, если вы хотите его поддержать, вы можете использовать:
var target = (event.target || event.srcElement);
Фактически указанное .event
свойство определяется как :
Элемент DOM на левой стороне вызова, вызвавший это событие, например:
element.dispatchEvent(event)
Это то же самое, что и вы сами <a>
.