繁体   English   中英

如果我直接打开带有哈希的页面,则jQuery的hashchange事件不起作用

[英]the hashchange event of jQuery doesn't work if I open a page with hash directly

我在html页面的末尾放置了一个脚本标记:

$(window).on ('hashchange', function (e) { alert (location.hash); });

如果我点击像#a这样的hrefs按钮,它就有效,但是如果我打开像localhost/aaa#a #a这样的链接,则不会触发警报功能。

所以看起来我必须在文档准备好时检测到哈希的存在。 但那看起来不对劲。

有没有办法让它在两种情况下都有效?

您必须在页面加载时手动触发事件。 只有在用户执行直接操作时才会触发该事件。 由于它是页面加载而没有来自用户的操作,因此不会触发on hashchange事件。

$(window).on('hashchange', function (e) {
    alert(location.hash);
}).trigger('hashchange');

如果要仅在存在哈希值时触发事件

$(window).on('hashchange', function (e) {
    alert(location.hash);
});

if (window.location.hash) {
    $(window).trigger('hashchange')
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM