使用jquery停止默认主题标签行为

我正在使用以下代码将一个hashtag附加到url的末尾。 这样,有人可以复制该url并将其带回该页面,并且某些div可见。

$("a.live").click(function() { window.location.hash = 'live'; $("#live).slideDown(); }); 

在这个例子中,我有一个名为“live”的div,当点击一个链接时会滑动,并且“#live”被添加到url中。 然后我有代码在加载页面时检查哈希标记以显示正确的div。

我的问题是,如何阻止浏览器在调用后跳转到“live”div? 我不希望页面向下滚动到div,只是希望它打开并附加了主题标签,这样一个人就可以复制它并返回那个显示div的页面。

有小费吗?

谢谢!

试试这个:

 $("a.live").click(function() { window.location.hash = 'live'; $("#live").slideDown(); return false; // this will prevent default action }); 

这取决于。 如果要在单击锚点时阻止它,请使用以下命令:

 $("a.live").click(function(e) { e.preventDefault(); // Prevents browsers default action window.location.hash = 'live'; $("#live").slideDown(); }); 

如果你想在页面加载时阻止它滚动到哈希,我不知道你会如何阻止它。

我假设您在文档就绪事件中有一些代码用于打开div,就像你说的那样? 如果是这样,我建议你在哈希中为ID添加一个前缀(比如#_live),这样就不会在文档中找到ID,从而阻止浏览器自动滚动到该元素,然后修改你的代码以删除你拿起它时的前缀。

我建议这个’黑客’,因为我认为你不能阻止使用JavaScript的浏览器行为,至少对于跨浏览器解决方案来说肯定不可靠。