Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/469.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在JavaScript中禁用href链接?_Javascript_Html - Fatal编程技术网

如何在JavaScript中禁用href链接?

如何在JavaScript中禁用href链接?,javascript,html,Javascript,Html,我有一个标签1234,在某些情况下,我希望这个标签被完全禁用 来自注释的代码(这是链接的生成方式) if(n\u索引!=n\u页) a=a+''; 其他的 a=a+''; a=a+''; 改用span和javascript onclick。如果您有链接和“#”href,某些浏览器会“跳转”。如果您不希望用户在单击时重定向,请尝试此操作 <a href="javascript: void(0)">I am a useless link</a> 您只需给它一个空哈希: an

我有一个标签
1234
,在某些情况下,我希望这个标签被完全禁用

来自注释的代码(这是链接的生成方式)

if(n\u索引!=n\u页)
a=a+'
  • '; 其他的 a=a+'
  • '; a=a+'';
  • 改用span和javascript onclick。如果您有链接和“#”href,某些浏览器会“跳转”。

    如果您不希望用户在单击时重定向,请尝试此操作

    <a href="javascript: void(0)">I am a useless link</a>
    

    您只需给它一个空哈希:

    anchor.href = "#";
    
    或者,如果“禁用”还不够好,请使用事件处理程序:

    anchor.href = "javascript:void(0)";
    

    为jquery安装这个插件并使用它

    它允许您禁用/启用页面中几乎任何字段

    如果您想在某些情况下打开页面,请编写java脚本函数并从href调用它。如果条件满足,你就打开页面,否则什么也不做

    代码如下所示:

    <a href="javascript: openPage()" >Click here</a>
    
    and function:
    function openPage()
    {
    if(some conditon)
    opener.document.location = "http://www.google.com";
    }
    }
    
    a {}
    
    <a href='javascript: void(0);' id="myLink">click here</a>
    
    其中一个肯定有用哈哈

    谢谢大家

    我的问题通过以下代码解决:

    <a href="javascript:void(0)"> >>> </a>
    

    禁用链接的最简单方法就是不显示链接。每当您想测试您的条件是否满足时,运行此功能以隐藏上一个按钮(用您的条件替换
    if(true)
    ):

    var testHideNav=function(){
    var aTags=document.getElementsByTagName('a'),
    atl=aTags.length,
    我
    对于(i=0;i
    然后在需要检查您的状况是否发生变化时,运行testHideNav()

    这也是可能的:

    <a href="javascript:void(0)" onclick="myfunction()">
    
    
    

    将执行函数时,链接不会移动到任何地方。

    因此,上述解决方案使链接无法工作,但不会使链接不再有效(AFAICT)可见。我有一种情况,我有一系列的页面,我想禁用(并使它明显地被禁用)指向当前页面的链接

    因此:

    这将遍历链接列表,找到指向当前页面的链接(n_root3可能是本地的,但我认为
    文档
    必须有类似的内容),并用链接文本内容替换链接


    您可以使用此样式类停用页面中的所有链接:

    a {
        pointer-events:none;
    }
    
    现在的诀窍当然是仅在需要时停用链接,这是如何做到的:

    使用空的类,如下所示:

    <a href="javascript: openPage()" >Click here</a>
    
    and function:
    function openPage()
    {
    if(some conditon)
    opener.document.location = "http://www.google.com";
    }
    }
    
    a {}
    
    <a href='javascript: void(0);' id="myLink">click here</a>
    
    然后,如果要停用链接,请执行以下操作:

        GetStyleClass('a').pointerEvents = "none"
    
        function GetStyleClass(className)
        {
           for (var i=0; i< document.styleSheets.length; i++) {
              var styleSheet = document.styleSheets[i]
    
              var rules = styleSheet.cssRules || styleSheet.rules
    
              for (var j=0; j<rules.length; j++) {
                 var rule = rules[j]
    
                 if (rule.selectorText === className) {
                    return(rule.style)
                 }
              }
           }
    
           return 0
        }
    
    有关浏览器兼容性的信息,请查看此页面

    我认为这是最好的办法,但可悲的是(像往常一样,不允许这样做:) 不管怎样,我还是要发布这篇文章,因为我认为它包含了有用的信息,并且因为有些项目使用了know浏览器,比如在移动设备上使用web视图时

    如果您只想停用一个链接(我只知道这是个问题),我会使用一个函数,根据该条件手动设置当前页面的url,或者不设置。 (就像您接受的解决方案)


    这个问题比我想象的要简单得多:)

    下面是禁用链接的代码:

    <a href="javascript: void(0)">test disabled link</a> 
    
    
    
    另一个非常简单的解决方案是:

    <a href="#">test disabled link</a>
    
    
    

    第一种解决方案是有效的。

    另一种禁用链接的方法

    element.removeAttribute('href');
    
    不带href的锚定标记将作为禁用/纯文本响应

    <a> w/o href </a>
    

    希望这很好。

    尝试使用jQuery:

    $(function () {
        $('a.something').on("click", function (e) {
            e.preventDefault();
        });
    });
    
    $(document).ready(function() {
        $("#myLink").on('click', doSubmit);
    });
    
    var doSubmit = function() {
        $("#myLink").off('click');
        // do things here
    };
    

    我也有类似的需求,但我的动机是防止链接被双击。我使用jQuery完成了它:

    $(function () {
        $('a.something').on("click", function (e) {
            e.preventDefault();
        });
    });
    
    $(document).ready(function() {
        $("#myLink").on('click', doSubmit);
    });
    
    var doSubmit = function() {
        $("#myLink").off('click');
        // do things here
    };
    
    HTML如下所示:

    <a href="javascript: openPage()" >Click here</a>
    
    and function:
    function openPage()
    {
    if(some conditon)
    opener.document.location = "http://www.google.com";
    }
    }
    
    a {}
    
    <a href='javascript: void(0);' id="myLink">click here</a>
    

    除了void,您还可以使用:

    <a href="javascript:;">this link is disabled</a> 
    
    
    

    我发现这种方法更容易实现。而且它的优点是你可以使用js。不是在html中,而是在不同的文件中。我认为没有解开束缚。这两项活动仍处于活动状态。不确定。但在某种程度上,您只需要这一个事件

    MDN推荐的
    元素将属性设置为null(或其他值)。在本例中,它将是
    element.removeAttribute(“href”)

    0)你最好记住这一点 如果有链接和“#”href,某些浏览器会“跳转”。因此,最好的方法是定制JavaScript

    1)如果您在自定义JavaScript之后执行此操作,则如下所示:

    <a href="#" onclick="DoSomething(); return false;">Link</a>
    
    其中
    .disabled
    类来自引导

    Qupte表单引导站点()

    链接功能警告

    .disabled类使用
    指针事件:none
    尝试禁用s的链接功能,但CSS属性尚未标准化。此外,即使在支持指针事件的浏览器中:无,键盘导航仍然不受影响,这意味着有视力的键盘用户和辅助技术用户仍然能够激活这些链接。为了安全起见,在这些链接上添加一个
    tabindex=“-1”
    属性(防止它们接收键盘焦点),并使用
    customJavaScript
    禁用它们的功能


    根据许多答案和我的经验,
    定制JavaScript
    显示在1节中,这是我的最佳解决方案:

    <a href="javascript:">I am a useless link</a>
    
    
    
    一些选项及其注意事项

    <a href="#">I will make you page jump to top</a> 
    
    <a href="#" onclick="DoSomething(); return false;">I'll break others scripts events</a>
    
    <a href="javascript: openPage()" >Please... I should be an onclick event...</a>
    
    <a href="javascript:" onclick="openPage()" >Please...do I even need to be an anchor?</a>
    
    <script>element.removeAttribute("href") // some browsers will remove link style</script>
    
    <script>element.href = null // some browsers will remove link style</script>
    
    <style>
     a.my-off-class {
        pointer-events: none
     }
     /** I disable hover event too. And... Is this a style responsability?
    </style>
    
    
    element.removeAttribute(“href”)//某些浏览器
    
    <a href="javascript:void(0);" onclick="DoSomething();">Link</a>
    
      <a href="javascript:;" onclick="DoSomething();">Link</a>
    
    $('.one-click').on("click", function (e) {
       $( this ).addClass('disabled');
    });
    
    <a href="javascript:">I am a useless link</a>
    
    <a href="#">I will make you page jump to top</a> 
    
    <a href="#" onclick="DoSomething(); return false;">I'll break others scripts events</a>
    
    <a href="javascript: openPage()" >Please... I should be an onclick event...</a>
    
    <a href="javascript:" onclick="openPage()" >Please...do I even need to be an anchor?</a>
    
    <script>element.removeAttribute("href") // some browsers will remove link style</script>
    
    <script>element.href = null // some browsers will remove link style</script>
    
    <style>
     a.my-off-class {
        pointer-events: none
     }
     /** I disable hover event too. And... Is this a style responsability?
    </style>