当我点击一个链接时,页面跳到顶部 - 我怎么能阻止它?

时间:2015-06-03 13:44:39

标签: javascript jquery

如何在点击链接后停止页面跳转到顶部? 我正在运行以下脚本。 (我有预感他们造成这种行为)

<script type="text/javascript">
    $(document).ready(function() {

        $("#menu-primary-menu-1").append('<li class="menu-logo menu-item"><a href="<?php echo site_url(); ?>"><img src="<?php echo site_url(); ?>/wp-content/themes/redu/images/redu4.png"></a></li>');
    });
</script>

<script type="text/javascript">
    $(window).scroll(function() {
        if ($(this).scrollTop() < 50) {
            $('#menu-primary-menu-1').hide();
        } else $('#menu-primary-menu-1').show();
    });
</script>

<script type="text/javascript">
    $(window).scroll(function() {
        if ($(this).scrollTop() > 340) {
            $('.arrow').css({
                'display': 'none'
            });
        } else $('.arrow').show();
    });
</script>

<script type="text/javascript">
    $(".arrow").click(function() {
        $('html,body').animate({
            scrollTop: $(".row").offset().top
        }, 'slow');
    });
</script>

我试过这个作为修复:

<script language="JavaScript" type="text/javascript">
    var link = document.getElementsByTagName("a");

    $(link).attr('onclick', 'bgenScroll();');

    <!--
    function bgenScroll() {
        if (window.pageYOffset != null) {
            st = window.pageYOffset + '';
        }
        if (document.body.scrollWidth != null) {
            if (document.body.scrollTop) {
                st = document.body.scrollTop;
            }
            st = document.documentElement.scrollTop;
        }
        setTimeout('window.scroll(0,st)', 10);
    }

    $('a').click(function(e) {
        e.stopPropagation();
    });

    //-->
</script>

我在wordpress主题中运行它们。

固定

这与#anchors无关。单击时,所有链接都将页面滚动到顶部。

我使用this作为修复。

3 个答案:

答案 0 :(得分:1)

我认为您href="#"中有anchor。您可以使用#~并尝试。

<a href="#~">YourLink</a> <!--Or any other character to avoid the scroll up-->

答案 1 :(得分:0)

或者您可以使用以下代码更改现有代码

$(link).attr('onclick', 'return bgenScroll();');
function bgenScroll(){
    //  your logic
    return false; // add this at end of the function;
}

答案 2 :(得分:-1)

试试此代码

$("a").click(function(){
    return false;
})