是否可以使用javascript/jquery禁用链接重定向?
我正在尝试创建一个单页网站,其中导航元素用于滚动到页面的特定部分: 然而,我对“一页网站”的问题是,锚链接不会被用作谷歌的网站链接。我通过添加schema.org标记尝试了以下方法,看看这是否会带来不同,但谷歌似乎不会在谷歌搜索结果中注册站点链接的锚 导航示例:是否可以使用javascript/jquery禁用链接重定向?,javascript,jquery,url,scroll,hyperlink,Javascript,Jquery,Url,Scroll,Hyperlink,我正在尝试创建一个单页网站,其中导航元素用于滚动到页面的特定部分: 然而,我对“一页网站”的问题是,锚链接不会被用作谷歌的网站链接。我通过添加schema.org标记尝试了以下方法,看看这是否会带来不同,但谷歌似乎不会在谷歌搜索结果中注册站点链接的锚 导航示例: <nav role="navigation" itemscope="itemscope" itemtype="http://schema.org/SiteNavigationElement">
<nav role="navigation" itemscope="itemscope" itemtype="http://schema.org/SiteNavigationElement">
<ul>
<li class="hidden active"><a class="page-scroll" href="#what" itemprop="url">What</a>
</li>
<li><a class="page-scroll" href="#works" itemprop="url">How It Works</a> </li>
<li><a class="page-scroll" href="#who" itemprop="url">Who</a>
</li>
<li><a class="page-scroll" href="#why" itemprop="url">Why</a>
</li>
</ul>
</nav>
//jQuery for page scrolling feature - requires jQuery Easing plugin
$(function() {
$('a.page-scroll').bind('click', function(event) {
var $anchor = $(this);
$('html, body').stop().animate({
scrollTop: $($anchor.attr('href')).offset().top
}, 1500, 'easeInOutExpo');
event.preventDefault();
});
});
我尝试创建实际页面并将锚更改为实际链接,但我不确定是否可以禁用这些链接以保持页面滚动工作
因此,新的导航链接基本上如下所示,但它们实际上不会指向该页面,而是滚动到同一页面上的部分:
<a class="page-scroll" href="what" itemprop="url">What</a>
我知道可以通过几种不同的方式禁用链接,但是使用javascript(void);或者其他类似的方法将不起作用,因为这些必须是真正的链接。对如何实现这一目标有何建议
下面是一个例子:
您可以保留代码并防止事件发生:
$(function() {
$('a.page-scroll').bind('click', function(event) {
var $anchor = $(this);
event.preventDefault(); //This will do the magic
$anchor.parent().addClass("active").siblings().removeClass("active");
$('html, body').stop().animate({
scrollTop: $("#" + $anchor.attr('href')).offset().top
}, 1500, 'easeInOutExpo');
event.preventDefault();
});
});
我可以为你的网站推荐一个稍微不同的架构吗?创建单独的页面,保持代码原样,使一页布局工作滚动到页面内锚定,并在页脚中包含一个站点地图,其中包含指向不同页面的链接。这将准确地维护您在一页滚动中正在尝试做的事情。Google链接可以转到实际页面,然后使用php重定向到主页
header('Location: xxx.php');
preventDefault
应该这样做,我是否会移动event.preventDefault()代码>以上var$anchor=$(此)代码>?谢谢@Mindastic。不幸的是,它似乎不起作用。嗯,可能是我不明白你的问题,因为我正在检查你发送的链接,它可以滚动,没有进入任何其他页面。嘿,第一个链接“关于”是我唯一更改的。它显示未捕获的TypeError:无法读取未定义的属性“top”。尝试单击“关于”链接,您将看到它没有任何作用。您的代码有问题。让我来编辑我的答案太棒了!现在可以滚动了。但是,这破坏了突出显示相关导航菜单项的引导scrollspy功能。。。有什么建议吗?这是个好主意。我以前确实想过这个问题,但我认为谷歌不会将301注册为站点链接。然而,通过观看,这个解决方案似乎是可行的。从长远来看,拥有实际的独立页面可能更好地用于seo目的,但如果您不想实际创建包含内容的其他页面,这显然是一个可行的解决方案。因此,要直接滚动到那些相关的部分,您可以在页面重定向中添加锚定标记吗?示例:标题('位置:http://www.example.com/#about');代码>