网页上有一些链接:
<a href="#example-hash-1" class="link">example-1</a>
<a href="#example-hash-2" class="link">example-2</a>
<a href="#example-hash-n" class="link">example-n</a>
单击它们上面的任何一个它会运行hashchange事件,我们将处理它:
$(window).on('hashchange', function(event){
// Is it possible (inside this handler) to find out which of a.link was clicked?
});
或者,还有其他办法吗?
答案 0 :(得分:0)
我认为您可以使用onclick作为标记中的属性,或者您可以通过jQuery使用.click()事件。我认为这将完成与hashchange上的窗口相同。
答案 1 :(得分:0)
event.target
将保留触发事件的元素。
我现在无法检查,但我相信this
也会绑定。
答案 2 :(得分:0)
试试这个:
$(window).on('hashchange', function(event){
var hash = location.hash;
var $this = $(hash);
alert($this.html());
});
答案 3 :(得分:0)
虽然我认为在实际链接中添加点击侦听器是最好的,但您也可以搜索会更改哈希的元素:
$(window).on('hashchange', function(event){
$('a[href$='+window.location.hash+']').action();
});