代码之家  ›  专栏  ›  技术社区  ›  Trip

jquery click将我带到页面顶部。但我想留在我现在的地方

  •  7
  • Trip  · 技术社区  · 15 年前

    我有一个简单的点击和显示,点击和隐藏按钮,但当我点击它,页面锚定在页面顶部。有没有办法阻止?所以当我点击这个按钮的时候,我会呆在浏览器的同一个地方?

    我的代码是…

    $('#reportThis').hide();
    
    $('#flagThis').click(function () {
        $('#reportThis').show("slow");
    });
    $('#submitFlag').click(function () {
        $('#reportThis').hide("slow");
    });
    
    5 回复  |  直到 8 年前
        1
  •  18
  •   Darin Dimitrov    15 年前

    试试这个:

    $('#reportThis').hide();
    
    $('#flagThis').click(function (evt) {
            $('#reportThis').show("slow");
            evt.preventDefault();
    });
    $('#submitFlag').click(function (evt) {
            $('#reportThis').hide("slow");
            evt.preventDefault();
    });
    
        2
  •  4
  •   Daniel Moura    15 年前

    您可能正在将此单击绑定到具有默认操作的<A>标记。要防止出现这种情况,您可以使用另一个标记,如<DIV>,也可以这样做:

    $('#flagThis').click(function (event) {
            $('#reportThis').show("slow");
            event.preventDefault();
    });
    
        3
  •  4
  •   John Rasch    15 年前

    尝试返回 false click 功能:

    $('#reportThis').hide();
    
    $('#flagThis').click(function () {
            $('#reportThis').show("slow");
            return false;
    });
    $('#submitFlag').click(function () {
            $('#reportThis').hide("slow");
            return false;
    });
    
        4
  •  3
  •   SLaks    15 年前

    将超链接更改为指向不存在的锚定,如下所示:

    <a href="#IDontExist" id="flagThis">Flag</a>
    

    或者,让您的处理程序返回 false ,像这样:

    $('#reportThis').hide();
    
    $('#flagThis').click(function () {
        $('#reportThis').show("slow");
        return false;
    });
    $('#submitFlag').click(function () {
        $('#reportThis').hide("slow");
        return false;
    });
    
        5
  •  0
  •   James M    8 年前

    如果你用的是 <button> 元素不要忘记设置类型属性。

    <button type="button">My Button</button> 
    

    某些浏览器默认为提交,这将使您返回页面的开头。

    不管怎么说,这就是我出错的地方,在这里我什么也没看到,所以我想我会为未来的读者分享我的两分钱。