如何在没有页面重新加载的情况下获取URL的新哈希值

时间:2014-08-16 11:30:10

标签: javascript jquery hash

我设置此脚本以捕获元素的点击次数并获取location.hash值:

$('a').on('click', function(){
    filenamehash=location.hash;
    console.log(filename);
    console.log(filenamehash);
});

问题是,在函数完成之前,哈希的值似乎没有变化。因此,如果我在页面中单击一个新的哈希值,则上述脚本无法捕获它。如果我第二次点击它,它就会。

我需要某种延迟吗?或者也许"点击完成"事件(如果有这样的事情?)。

感谢。

1 个答案:

答案 0 :(得分:3)

为什么不直接监听哈希更改

$(window).on('hashchange', function() {
    console.log( window.location.hash );
});

或者如果哈希是锚点href,那就得到那个

$('a').on('click', function(){
    var filenamehash = $(this).attr('href');

    console.log(filenamehash);
});