【问题标题】:Disable default behavior of links禁用链接的默认行为
【发布时间】:2010-07-05 17:00:03
【问题描述】:

我有一个菜单列表:

<ul>
    <li><a href="#about" id="about">ՄԵՐ ՄԱՍԻՆ</a></li>
    <li><a href="#products" id="products" >ԱՐՏԱԴՐԱՆՔ</a></li>
    <li><a href="#farm" id="farm" >ՏՆՏԵՍՈՒԹՅՈՒՆ</a></li>
    <li><a href="#gallery" id="gallery" >ՆԿԱՐՆԵՐ</a></li>
    <li><a href="#contacts" id="contacts">ՀԵՏԱԴԱՐՁ ԿԱՊ</a></li>
</ul>

我使用address 插件在 ajax 上进行后退/前进,但我有一个无法修复的小错误。

当我点击菜单时,如果页面有滚动,它会移动页面直到菜单出现在页面顶部,但我不需要它这样做。

有没有办法禁用这种行为?

非常感谢。

【问题讨论】:

标签: javascript jquery jquery-plugins


【解决方案1】:

为链接创建或修改click() 处理程序以使用preventDefault() 方法。

例如:

$("a").click 
(
    function (evt)
    {
        //YOUR CODE HERE

        evt.preventDefault(); 
        return false;  
    } 
);

【讨论】:

    【解决方案2】:

    尝试将以下内容添加到您的链接中:

    onclick="return false;"
    

    因为您可能正在为单击事件向此链接添加事件处理程序。只需将 return false 添加到它的末尾,而不是直接在 HTML 标记上。

    【讨论】:

    • 它不起作用;这样不起作用:(addres插件也开始不起作用
    • 好的,我查看了插件示例页面,我注意到它们没有绑定 click 事件,而是绑定了 change 和 externalChange 事件。你在做同样的事情吗? asual.com/jquery/address/samples/tabs/# 更改为删除代码,因为它看起来很糟糕。
    【解决方案3】:

    'href="#about"' 指的是 id 为 'about' 的元素。这就是页面被移动的原因

    <!DOCTYPE html>
    <html>
    <head>
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js" type="text/javascript"></script>
    </head>
    <body>
    
        <div id="datosResultado">
            1<br />
            2<br />
            3<br />
            4<br />
            5<br />
            6<br />
            7<br />
            8<br />
            9<br />
            10<br />
        </div>
        <ul id="yourMenu">
            <li><a href="#about" id="about">about</a></li>
            <li><a href="#products" id="products">products</a></li>
            <li><a href="#farm" id="farm">farm</a></li>
            <li><a href="#gallery" id="gallery">gallery</a></li>
            <li><a href="#contacts" id="contacts">contacts</a></li>
        </ul>
    
        <div id="you-click"></div>
    
    </body>
    
    <script type="text/javascript">
    
    $(function(){
    
        $("#yourMenu>li>a").bind("click", function(ev){
    
            ev.stopPropagation();
    
            //...your code...
    
            $("#you-click").html($(this).html());
    
            return false;
        });
    });
    
    </script>
    

    【讨论】:

    • 感谢您的想法。我只需要将它们设置为其他ID - s,然后设置href 值。 &lt;a href="#about" id="_about"&gt;,就是这样;)...
    【解决方案4】:

    正如 andres descalzo 所说,它移动是因为它们具有相同的 id,然后在 href 中。所以我只需要更改a标签的id

        <a href="#about" id="_about">ՄԵՐ ՄԱՍԻՆ</a>
        <a href="#products" id="_products"> ԱՐՏԱԴՐԱՆՔ</a>
       ....................................................
    

    它解决了整个问题。

    感谢大家的关注和想法;)

    【讨论】:

      猜你喜欢
      • 2011-11-23
      • 2022-01-23
      • 2013-12-19
      • 1970-01-01
      • 2019-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-21
      相关资源
      最近更新 更多