jQuery:如何在hashchange事件处理程序中找到一个元素?

时间:2015-07-20 00:36:02

标签: javascript jquery events handlers 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?

});

或者,还有其他办法吗?

4 个答案:

答案 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();
});