为什么有些JavaScript函数在激活锚点时不起作用(URL中为#anchor)

时间:2016-10-06 12:46:31

标签: javascript jquery anchor scrollto

编辑第一个:实际上很奇怪,当我点击锚点时,我的javascript函数不起作用!真的......如果有人有想法,我会非常感激

我正在编写一个简单的主页,其中包含带有表单的标题和一个介绍我网站内容的部分。

我有两个问题因为我的锚(至少看起来如此):当我点击锚点时,看起来我的javascript函数不起作用。我会更准确地解释你。

予。用于显示表单的Javascript函数

第一部分由标题组成。在此标题上,您有一个表单可以连接或注册。我没有显示两种形式:实际上我首先只显示连接形式。如果用户不是会员,他只需要点击“我没有帐户”,然后我的连接表格将被注册表格取代。 (感谢jquery代码)

在标题的末尾我放了一个箭头。当您点击它时,您将直接进入我的网站内容的演示文稿(感谢锚)。

II。用于显示精确内容摘要的Javascript函数

点击主播后,用户面对3个圆圈(标题:内容1,内容2和内容3)。当用户飞过一个圆圈时,此圆圈将变为矩形,并显示内容摘要。

但是当我没有点击锚点时:一切正常。但是当我点击锚点时,javascript函数用于显示表单和显示圆圈中的内容根本不起作用!我不知道如何解决它。我尝试从网址中删除锚点,例如:http://mywebsite/#anchorhttp://mywebsite,但到目前为止我没有管理。

III。代码

这是我的HTML代码和Javascript代码。

<header>
        <div class="intro-header">
            <h1>TEST MY WEBSITE</h1>
            <div class="divForm_global">
                <div class="divForm_connexion" id="divForm_connexion">
                    <h3>Connect to your account</h3>
                    <form class="form_connexion">
                        <div class="form-group">
                            <label for="email">Email address: </label>
                            <input type="email" class="form-control" id="loginemail">
                        </div>
                        <div class="form-group">
                            <label for="pwd">Password: </label>
                            <input type="password" class="form-control" id="loginpasswordd">
                        </div>
                        <div class="checkbox">
                            <label><input type="checkbox">Remember me</label>
                        </div>
                        <button type="submit" class="btn btn-default" id="login">Submit</button>
                        <p id="one"><a href="#">Forgot Password ?</a></p>
                        <p id="two">Don't have account? <a class="signup" href="#" id="signup">Sign up here</a></p>
                    </form>
                </div>

                <div class="divForm_register" id="divForm_register">
                    <h3>Register Form FOR TEST</h3>
                    <form class="form_register">
                        <div class="form-group">
                            <label for="name">Name/Pseudo: </label>
                            <input type="text" class="form-control" id="name">
                        </div>
                        <div class="form-group">
                            <label for="email">Email address: </label>
                            <input type="email" class="form-control" id="registeremail">
                        </div>
                        <div class="form-group">
                            <label for="pwd">Password: </label>
                            <input type="password" class="form-control" id="registerpassword">
                        </div>                          
                        <button type="submit" class="btn btn-default" id="register">Submit</button>
                        <p id="two">Already have an account? <a class="signin" href="#" id="signin">Sign in</a></p>
                    </form>
                </div>
            </div>
            <div class="page-scroll">
                <a href="#service" class="btn btn-circle">
                    <i class="fa fa-angle-double-down animated"></i>
                </a>                
            </div>
            <hr class="intro-divider" />
        </div>
    </header>

    <section id="service">
        <script src="js/display_content_circle.js" type="text/javascript"></script>
        <div class="wow bounceInDown" data-wow-delay="0.4s">
            <h2>I CONTINUE TO TEST HERE </h2>
        </div>
        <div id="test>
            <div class="container">
                <div class="row" style="margin-top: 75px;">
                    <div class="wow fadeInLeft" data-wow-delay="0.2s">
                        <div class="col-md-4" style="height: 250px;">
                            <div class="panel circular-panel panelGeneral">
                                <h3 class="header" style="font-family:stencil,serif;color:red;">TITLE CIRCLE 1 TEST</h3>
                                <div class="description-header" style="display: none;">
                                    <i class="panel-icon flaticon-tool"></i><a href="#" style="color:red; font-style:bold;">TEST HERE</a>
                                </div>
                                <p class="description" style="display: none;">TEST TEST TEST TEST</p>
                            </div>
                        </div>
                    </div>                  
                </div>                  
            </div>
        </div>
    </section>

在这里,你会发现我的javascript函数,当我飞过圆圈时显示圆圈的内容:

var main = function()
    {
        $('.circular-panel').hover(function()
        {
            $(this).animate(
            {
                width: '250px',  
                height: '250px', 
                borderWidth: '1px', 
                borderRadius: '4px', 
                lineHeight: '24px'
            }, 100);
            $(this).children('.header').fadeOut(100);
            $(this).children('.description-header').fadeIn(100);
            $(this).children('.description').fadeIn(100);
        }, function()
        {
            $(this).animate(
            {
                width: '150px', 
                height: '150px', 
                borderWidth: '5px', 
                borderRadius: '50%', 
                lineHeight: '140px'
            }, 100);
            $(this).children('.header').fadeIn(100);
            $(this).children('.description-header').fadeOut(100);
            $(this).children('.description').fadeOut(100);
        });


        $('.extra').children('.glyphicon-remove').click(function()
        {
            $('.extra').slideUp('fast');
            $('.copyright').animate(
            {
                marginBottom: '0px'
            }, 'fast');
        });
    };

    $(document).ready(main);

为了不用代码压倒你,我决定不向你展示我改变表格的功能代码,因为我认为如果我们设法用“圆圈”来解决问题,我会设法解决问题表示我猜。但如果你需要,请问我

我真的认为问题来自于那些函数,因为他们使用“$ document”,并且可能因为锚而修改了。所以选择器不起作用,因为文档是我的网站,没有锚点(http://Website),当我点击我有的锚点(http://website/#anchor)。

你知道吗?我们可以停用锚点的URL吗? (单击不带#anchor的锚点会被添加到网站的URL中吗?)

1 个答案:

答案 0 :(得分:0)

你可以这样做:

$('a').on('click', function(e){
   e.preventDefault();
});

这样可以防止链接的defaut行为。