【问题标题】:Disable link to current page number. (anchor tag)禁用指向当前页码的链接。 (锚标记)
【发布时间】:2010-03-27 07:21:21
【问题描述】:

我有一个锚标记。我想要 单击后禁用它。一世 尝试了以下方法。

  print "<script type='text/javascript'>parent.window.frames[2].document.getElementById('pagination').innerHTML+=\"<a href=# onclick='pageshow`($i);this.disabled=true'>$i</a>&nbsp;\"</script>";

注意: 我不想禁用链接。我想禁用链接操作。喜欢 Google 搜索页面。

例如:1 2 3 4 5 下一个

一旦我点击了第一个页面,我就无法再次点击同一页面。和我想要的一样。

【问题讨论】:

    标签: javascript


    【解决方案1】:

    您也可以通过以下方式禁用锚标记。

    <a href='URL' style='text-decoration:none;cursor: auto;' onClick='return false'>LINK</a>
    

    【讨论】:

    • 这是一个有点误导性的答案,并没有回答我认为大多数来到这里的人会问的问题,即如何在点击后禁用链接,例如在购物车结账时您不希望多次单击“结帐”链接。您的解决方案完全防止链接导致任何导航。见stackoverflow.com/questions/1164635/…
    【解决方案2】:

    重读了问题……

    Google 不会“在点击链接后禁用链接”。

    他们只是不链接到当前页面。他们的标记令人震惊,所以我不会复制它,一个简化的例子(第 2 页)是:

    <ol>
      <li><a>1</a></li>
      <li>2</li>
      <li><a>3</a></li>
      <li><a>4</a></li>
    </ol>  
    

    【讨论】:

      【解决方案3】:

      我见过的这个问题的最佳答案是使用 jQuery。

      How to enable or disable an anchor using jQuery?

      这是链接中断的代码。 这通过阻止e(锚点上的点击事件)来禁用&lt;a id="current"&gt;

      $(document).ready(function() {
        $('a#current').click(function(e) {
          e.preventDefault();
        });
      });
      

      【讨论】:

      • 在你的情况下,我会让所有页码链接有条件地禁用,例如,当页码是 a#current 或其他东西时。
      【解决方案4】:
      <a href="…" onclick="this.removeAttribute('href');">
      

      【讨论】:

      • 我发现这甚至阻止了第一次点击,因为当这个函数返回并且浏览器决定对点击采取行动时, 没有href。
      【解决方案5】:

      Javascript 不是执行此操作的正确方法,但我会为它提供一个答案:

      var links = document.getElementsByTagName('a'), link, children;
      for(var i = 0; i < links.length; i++) {
          link = links[i];
          if(link.href == window.location.href) {
              children = link.childNodes;
              for(var j = 0; j < children.length; j++) {
                  link.parentNode.insertBefore(children[j], link);
              }
              link.parentNode.removeChild(link);
          }
      }
      

      编辑:我不知道“he-double-hockey-sticks”在 SO 上是否是“粗言秽语”,但如果是的话,这将在几个月后被神秘地删除,所以我改用了“heck” .

      【讨论】:

        猜你喜欢
        • 2011-12-27
        • 2017-04-10
        • 2013-03-31
        • 1970-01-01
        • 1970-01-01
        • 2021-05-23
        • 2014-02-06
        • 1970-01-01
        • 2010-11-27
        相关资源
        最近更新 更多