【发布时间】:2018-10-26 02:58:10
【问题描述】:
我下载了一个设计很奇怪的单页模板。所有超链接都链接到页面上的部分,并且使用 data-link="" 参数。
现在我尝试将其中一个菜单项链接到具有目标 _blank 的外部 url,但随后它正在寻找我在页面本身上定义的 url(因此它正在寻找不存在的部分,例如 www .example.com/http://google.nl)
链接在 href 元素上有一个值,如下所示:
href="/home/" or href="/menu/"
<ul id="w1" class="navbar-nav nav">
<li><a id="navhome" class="" href="/home" title="Home" data-link="home">Home</a></li>
<li><a id="navmenu" class="" href="/menu" title="Menu" data-link="menu">Menu</a></li>
所以这不起作用(也没有目标_blank:
<li><a id="navorder" href="http://order.company.com" target="_blank">Order Now</a></li>
这里使用了什么技术?以及如何将新菜单项链接到外部页面?
编辑:
我找到了处理 href 的代码:
$(".menu ul li a").not('.social-link').click(function(e) {
e.preventDefault();
$(".menu ul li a").removeClass("active");
tabTarget = $(this).data('link');
animateByMenu = true;
var hash = '#' + tabTarget;
var url = $(this).prop('href');
var menuItem = $(this).data('link');
$(".menu li a[data-link=" + menuItem + "]").addClass("active");
if (url) {
var top = $(hash).offset().top - 60;
$('html, body').animate({
scrollTop: top
}, 600, function(){
});
history.pushState('', '', url);
$('.navbar-toggle:visible').click();
}
return false;
});
当我点击链接时,控制台中出现以下错误:
main.js:109 Uncaught TypeError: Cannot read property 'top' of undefined
at HTMLAnchorElement.<anonymous> (main.js:109)
at HTMLAnchorElement.dispatch (jquery.min.js:3)
at HTMLAnchorElement.r.handle (jquery.min.js:3)
【问题讨论】:
-
<a ... href="http://order.company.com" ...> ... </a>应该可以正常工作...如果不能,您可以提供更多代码和上下文 -
删除 data_link 属性
- Home
因为这个属性意味着尝试在当前页面中查找 id 为 home 的 div 容器 -
试试这个
- order.company.com" title="立即订购" data-link="order.company.com">Order立即
-
IDK 没有看到代码,但也许模板有一个脚本,它捕获所有链接上的所有点击事件,并在事件上使用 preventdefault 来切换数据链接的值以执行某种类型的滚动行为
-
oke 我找到了处理 href 的代码,请参阅编辑后的帖子
标签: javascript jquery html css