如何在 jQuery 中引用井号 (#)?
我一直在尝试一种新方法来使用 jQuery 设置网站,以便在单击链接时动态获取内容。这是 jQuery 代码:
$(document).ready(function() {
var content_loader = $('#content-loader');
$('#nav ul li a').click(function () {
$(this).closest('ul').find('li.active').removeClass('active');
$(this).parent().addClass('active');
content_loader.load('content/' + $(this).attr('data-name') + '.html');
});
content_loader.load('content/home.html');
});
我一直这样做,因为我的网站背景中有一首歌曲,我想一直播放它,而不是每次单击链接时都重新开始。
整个事情运行得很好,除了我遇到的两个问题。
- 假设我单击“联系我们”链接。我现在会在网址末尾看到#contactus。如果我刷新页面,我会再次看到我的主页内容。
- 如果我尝试将某人链接到我的“联系我们”页面,也会出现同样的问题。
我想知道 jQuery 是否可以以某种方式找出 url 中 # 符号后面的内容。在这种情况下,我可以更改 jQuery 代码的最后一行来加载它,而不是始终加载主数据。
I've been trying a new way to set up a website using jQuery to dynamically get the content when a link is clicked. Here is the jQuery code:
$(document).ready(function() {
var content_loader = $('#content-loader');
$('#nav ul li a').click(function () {
$(this).closest('ul').find('li.active').removeClass('active');
$(this).parent().addClass('active');
content_loader.load('content/' + $(this).attr('data-name') + '.html');
});
content_loader.load('content/home.html');
});
I've been doing it this way since I have a song in the background of my site that I want to play all the time and not start over every time a link is clicked.
The whole thing works pretty good, except for 2 issues I'm having.
- Let's say I click the contact us link. I would now see #contactus at the end of the url. If I then refresh the page, I see my home page content again.
- Same problem if I try linking someone to my contact us page.
I was wondering if jQuery can somehow find out what comes after the # sign in the url. In that case, I can change the last line of my jQuery code to load that instead of the home data all the time.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
window.location.hash
将包含哈希值后的值(如果有)。 (这是当浏览器地址栏中当前网址(例如当前页面)中有哈希值时的情况。)否则,如果您正在从 href 读取链接,则需要使用
indexOf('#')
和一些解析。window.location.hash
will contain the value after the hash (if there is one). (This is when there's a hash in the current url, eg. current page, in the browser's address bar.)Otherwise, if you're reading a link from an href, you'll need to use
indexOf('#')
and a bit of parsing.谢谢你们的回答。我现在就是这样做的:
Thanks for your answers guys. This is how I did it now: