jquery - 在 url 更改或加载时执行
问题描述
我想在散列更改时执行一些 ajax 调用,但也在初始页面加载时执行。
$(window).on('hashchange', function (e) {
//execute this code
});
if (window.location.hash) {
$(window).trigger('hashchange')
}
但这仅在 url 中有哈希时执行domain.com#hash
。如果我加载纯 url domain.com
,则不会执行代码。
如何在有和没有哈希的两种可能性上执行此操作?(当没有hash的url加载时,会显示一些数据。使用ha会显示额外的数据)。
解决方案
如果您希望它在页面加载后发生:
$(window).on('load', function () {
$(window).trigger('hashchange');
});
或者,如果您希望它立即发生(而不是在加载后)
$(function() {
$(window).trigger('hashchange');
});
那么这是不必要的
if (window.location.hash) {
$(window).trigger('hashchange')
}
您的代码hashchange
仅在存在哈希 ( window.location.hash
) 时触发,并且当存在哈希更改时,您将执行您的函数。
但是如果你想这样做,不管有没有哈希,都不需要检查它是否存在。
推荐阅读
- regex - 正则表达式匹配各种模式
- python - 在保持日期时间排序的同时计算从 json 到 pandas 的值
- php - 我正在写博客,需要按日期排序
- arrays - 我需要帮助构建一种算法来显示某些类型的内容
- html - 如何使用 VS Code 为 HTML 设置连续缩进格式
- typescript - 在泛型类中定义嵌套对象的正确方法是什么?
- python - 组聚合中的算术减法 PySpark
- python-3.x - FileNotFoundError:[Errno 2] 没有这样的文件或目录:'Interview-part2.mp3' - pydub
- docker - Dockerfile 在更新包时抛出 DNS 查找错误
- sql - 如何在 Postgres 中将 15 分钟时间序列聚合为 1 小时间隔