Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以使用javascript/jquery禁用链接重定向?_Javascript_Jquery_Url_Scroll_Hyperlink - Fatal编程技术网

是否可以使用javascript/jquery禁用链接重定向?

是否可以使用javascript/jquery禁用链接重定向?,javascript,jquery,url,scroll,hyperlink,Javascript,Jquery,Url,Scroll,Hyperlink,我正在尝试创建一个单页网站,其中导航元素用于滚动到页面的特定部分: 然而,我对“一页网站”的问题是,锚链接不会被用作谷歌的网站链接。我通过添加schema.org标记尝试了以下方法,看看这是否会带来不同,但谷歌似乎不会在谷歌搜索结果中注册站点链接的锚 导航示例: <nav role="navigation" itemscope="itemscope" itemtype="http://schema.org/SiteNavigationElement">

我正在尝试创建一个单页网站,其中导航元素用于滚动到页面的特定部分:

然而,我对“一页网站”的问题是,锚链接不会被用作谷歌的网站链接。我通过添加schema.org标记尝试了以下方法,看看这是否会带来不同,但谷歌似乎不会在谷歌搜索结果中注册站点链接的锚

导航示例:

             <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');