基本上,我希望在整个页面中都有链接来更改锚点 - 在#符号后面的URL部分。当URL的那一部分发生变化时,JavaScript应该响应。
我可以为每个链接添加一个onclick方法,但是有更好的方法吗?
答案 0 :(得分:4)
$(window).bind('hashchange', function() {
// code here
});
认为应该这样做
答案 1 :(得分:3)
那不是锚,它是哈希?
$(window).on('hashchange', function() {
alert('My fracking hash changed to : '+document.location.hash);
});
答案 2 :(得分:1)
在jQuery中,您不需要将onclick事件添加到所有个人链接。使用$('a')
之类的选择器,您可以一次向所有链接添加事件。
$('a').click(function(){
// code here
});
在此活动中,您可以使用$(this)
对象获取href
。
但我建议其他答案向您展示解决此问题的更优雅方式。
答案 3 :(得分:0)
首先,你必须选择元素。
例如var links = $(“a”);
然后添加jquery函数.click()
答案 4 :(得分:0)
您可以向a
添加delegate,
$(elements).on(events,selector,data,handler);
不同之处在于它不会向每个onClick
元素添加“a
”,但它会捕获onClick
的“a
”事件
答案 5 :(得分:0)
试试这个
window.location.hash
存储在全局变量上,例如currentHash
window.location.hash !== currentHash
currentHash = window.location.hash
setInterval
DOMReady
执行此功能
醇>
答案 6 :(得分:0)
Sammy.js是你的朋友。我已经在我正在使用的SPA上使用它,我喜欢它!