2015-07-20 69 views
0

一个网页有一些链接:jQuery:如何在hashchange事件处理程序中查找元素?

<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

为你的情况[event.target](https://api.jquery.com/event.target/)将做到这一点。 –

+0

和'location.hash;'?即:'var hash = location.hash;' –

回答

0

我认为你可以使用onclick作为标签中的一个属性,或者你可以通过jQuery使用.click()事件。我认为这将实现与hashchange上的窗口相同的功能。

0

event.target将持有哪个元素触发事件。

我目前无法检查,但我认为this也绑定。

0

试试这个:

$(window).on('hashchange', function(event){ 

    var hash = location.hash; 
    var $this = $(hash); 
    alert($this.html()); 
}); 
0

虽然我认为增加点击听众实际的链接将是最好的,你也可以搜索,将已经改变了哈希这样的元素:

$(window).on('hashchange', function(event){ 
    $('a[href$='+window.location.hash+']').action(); 
}); 
相关问题