在点击事件/功能期间获取URL哈希

时间:2016-10-14 15:39:59

标签: javascript jquery

在jQuery点击事件功能期间,我理解在基础事件完成之前触发click事件(并更新URL)...因此您可以控制事件。这意味着链接的哈希值尚未通过window.location.hash

提供

e.target.hash比到达<a>元素本身获得哈希值更好;或通过onclick事件传递必要的变量? &#34;更好的&#34;定义为跨浏览器兼容性或更容易出错。

例如:

<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/

2 个答案:

答案 0 :(得分:2)

根据您的要求,听起来onhashchange的{​​{1}}事件会更合适:

window

Updated fiddle

答案 1 :(得分:0)

根据Mozilla Web API,每个现代浏览器都支持Event.target,但使用Event.srcElement的Internet Explorer 6到8除外,所以如果你想支持它,你可以使用方法:

var target = (event.target || event.srcElement);

事实上,.event属性is defined as

  

触发此操作的调用左侧的DOM元素   事件,例如:

element.dispatchEvent(event)

因此与到达<a>你自己一样。

相关问题