我第一次面对这个奇怪的问题。 可能是一件非常容易的事,但我无法离开。
如果您打开此页面中的菜单: https://danielepinazzi.com/fabric/
并且您尝试使用锚链接导航到该页面,它完美无缺。
如果您打开“与我们联系”页面,然后尝试单击菜单中的其他链接,例如“我们做什么”,它将关闭菜单并且不执行任何操作。但是,如果您尝试右键单击并选择“在新选项卡中打开”,则可以正常工作。
编辑,因为我需要更好地解释: 我已经在菜单中添加了绝对链接,而不仅仅是锚点。 #whatwedo部分与https://danielepinazzi.com/fabric/#whatwedo
相关联我在Mac上使用Chrome。
有人可以向我解释一下吗?
谢谢你,祝大家度过愉快的一天。
答案 0 :(得分:0)
您可能已经通过#link
这样的菜单添加了锚点链接。这些链接仅在您放置这些锚点的页面上有效。如果您希望它们在另一个页面上工作,则应将其添加为/fabric/#link
,因为项目的主页为/fabric/
。
注意:如果您在菜单中使用绝对网址(即https://danielepinazzi.com/fabric/#whatwedo而不仅仅是#whatwedo
,这是最简单的。如果您迁移到的话,请不要忘记更新这些网址生产环境。
答案 1 :(得分:0)
我检查了那里发生的事情,你有一个如下所述的代码块;
当我按照你在问题上所说的那样做时,isSamePage返回true,因为你在href变量上分割锚标记
$this.attr("href").split("#")[0]
并返回已经在网址中的 https://danielepinazzi.com/fabric/ 。
根据代码使isSamePage为true并阻止该操作。
$(".mk-fullscreen-nav-close, .mk-fullscreen-nav-wrapper, #fullscreen-navigation a").on("click", function(e) {
$(".mk-fullscreen-nav").removeClass("opened"),
$(".mk-dashboard-trigger").removeClass("fullscreen-active"),
$("body").removeClass("fullscreen-nav-opened");
var anchor = MK.utils.detectAnchor(this)
, $this = $(this)
, href = $this.attr("href").split("#")[0]
, url = window.location.href
, isSamePage = -1 !== url.indexOf(href);
anchor.length ? (isSamePage && e.preventDefault(),
MK.utils.scrollToAnchor(anchor)) : "#" === $this.attr("href") && e.preventDefault()
})