[英]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.