【问题标题】:How to disable anchor using JavaScript? [duplicate]如何使用 JavaScript 禁用锚点? [复制]
【发布时间】:2011-04-05 13:46:21
【问题描述】:

我必须根据条件禁用锚链接,如果某些数据进入该字段,它应该作为超链接工作,如果该数据没有出现,那么链接不应该存在吗? 欢迎对此提出任何想法。

【问题讨论】:

    标签: javascript html css


    【解决方案1】:

    案例一:

    禁用:

    document.getElementById(id).style.pointerEvents="none";
    document.getElementById(id).style.cursor="default";
    

    启用:

    document.getElementById(id).style.pointerEvents="auto";
    document.getElementById(id).style.cursor="pointer";
    

    案例 2:

    如果您希望链接消失(不仅仅是禁用它):

    document.getElementById(id).style.display="none";
    

    把它拿回来:

    document.getElementById(id).style.display="block"; //change block to what you want.
    

    案例 3:

    如果你想隐藏它保留它的空间:

    document.getElementById(id).style.visibility="hidden";
    

    要取回它:

    document.getElementById(id).style.visibility="visible";
    

    【讨论】:

    • 这很好,因为它适用于您有 href 或 onclick 的情况。
    【解决方案2】:

    我无法理解你的问题主体,所以我会回答你的问题的标题......

    如何使用 javascript 禁用锚点?

    JavaScript

    if (condition) {
        document.getElementsByTagName('a')[0].removeAttribute('href');
    }
    

    jQuery

    ...因为每个人都使用它,对吧?

    if (condition) {
        $('a').first().removeAttr('href');
    }
    

    【讨论】:

    • 我认为 甚至 jQuery 可能会失败 removeAtt :)
    • @thirtydot 哎呀。我想我忘了r :)
    • 这也适用于 document.getElementById(yourIdHere).removeAttribute('href');
    【解决方案3】:

    使用 jQuery

    if(!data){
      $('#linkID').click(function(e) {
        e.preventDefault();
      });
    }
    

    带原型

    if(!data){
      $('linkID').observe('click', function(event) { event.stop() });
    }
    

    【讨论】:

    • 为什么不使用 OP 没有提到的另一个框架,比如 MooTools? :P
    • 我想说的是,当 OP 未指定库时,您回答了库代码。
    • @alex 是的,我知道只能用 jQuery 来做 ;-)
    • 当 OP 甚至没有提到 jQuery 时,最高投票的答案......荒谬。
    【解决方案4】:
    <a href="javascript:check()">my link</a>
    
    function check(){
    var data =document.getElementById("yourdatafield").value;
    if(data)
      window.location="your_link_location";
    
    }
    

    【讨论】:

    • 我想知道如果数据为空会发生什么..
    • @Mithun :如果需要,我们可以在 if 语句中检查
    【解决方案5】:

    使用 jQuery:

    禁用:

    $('#anchor_tag').attr("disabled", true);
    

    启用:

    $('#anchor_tag').attr("disabled", false);
    

    【讨论】:

    • 这不适用于 Anchors。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-12
    • 1970-01-01
    • 1970-01-01
    • 2020-01-06
    • 1970-01-01
    • 2012-02-04
    • 2011-12-01
    相关资源
    最近更新 更多