我正在使用以下代码将主题标签附加到网址的末尾。这样,有人可以复制该网址并将其带回该页面,并且某些div可见。
$("a.live").click(function() {
window.location.hash = 'live';
$("#live).slideDown();
});
在这个例子中,我有一个名为'live'的div,当点击一个链接时会滑动,并且会在网址中添加'#live'。然后我有代码在加载页面时检查哈希标记以显示正确的div。
我的问题是,如何阻止浏览器在调用后跳转到“live”div?我不希望页面向下滚动到div,只是希望它打开并附加了主题标签,这样一个人就可以复制它并返回到显示该div的页面。
任何提示?
谢谢!
答案 0 :(得分:8)
这取决于。如果要在单击锚点时阻止它,请使用:
$("a.live").click(function(e) {
e.preventDefault(); // Prevents browsers default action
window.location.hash = 'live';
$("#live").slideDown();
});
如果你想在页面加载时阻止它滚动到哈希,我不知道你会如何阻止它。
答案 1 :(得分:8)
试试这个:
$("a.live").click(function() {
window.location.hash = 'live';
$("#live").slideDown();
return false; // this will prevent default action
});
答案 2 :(得分:2)
我假设您在文档就绪事件中有一些代码,用于打开div,如您所说?如果是这样,我建议您在哈希中为ID添加前缀(如#_live),以便在文档中找不到ID,从而阻止浏览器自动滚动到该元素,然后修改代码以删除你拿起它时的前缀。
我建议这个'黑客',因为我认为你不能阻止使用JavaScript的浏览器行为,至少对于跨浏览器解决方案来说肯定不可靠。