Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.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
在php javascript中禁用a href链接_Javascript_Php_Disable Link - Fatal编程技术网

在php javascript中禁用a href链接

在php javascript中禁用a href链接,javascript,php,disable-link,Javascript,Php,Disable Link,我的页面(.phtml文件)中有4个链接,如下所示 <ul id="fileMenu" class="contextMenu"> <li class="add"><a id ="addbtn" href="#add" style="display:none;">Add</a></li> <li class="download"><a href="#download">Download</a&

我的页面(.phtml文件)中有4个链接,如下所示

<ul id="fileMenu" class="contextMenu">
    <li class="add"><a id ="addbtn" href="#add" style="display:none;">Add</a></li>
    <li class="download"><a href="#download">Download</a></li>
    <li class="rename"><a href="#rename">Rename</a></li>
    <li class="del"><a href="#delete">Delete</a></li>
    <li class="copypath"><a href="#copypath">Copypath</a></li>
</ul>
我想禁用添加、重命名和删除链接 只需从UI禁用它即可

用户应该能够看到它,但不应执行任何单击事件(链接应灰显)

我用过

  • disable=“disabled”

  • display=none

  • 但它们并没有达到目的


    还有其他办法吗?

    使用指针事件:无

    <a  style='pointer-events:none;background-color:#CFCFCF;color:#000' href="javascript: void(0)">Delete</a>
    

    如果您使用的是jQuery,您可能需要这样做

    $(function() {
     $('#addbtn').click(function(e) {
        e.preventDefault();
        //do other stuff when a click happens
     });
    }
    

    我将使用此CSS以视觉方式禁用链接:

    .disable {
        position: relative;
    }
    .disable:before {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 100;
    }
    .disable a {
        color: gray;
        cursor: default;
    }
    
    然后,为了禁用链接,您将在相应的
    li
    上放置一个类
    disable

    <li class="download disable"><a href="#download">Download</a></li>
    
  • 它所做的基本上是用透明的伪元素
    :before
    覆盖链接

    另一个解决方案可能是使用
    指针事件:none
    规则,但IE中不支持它


    演示:我不确定这是不是最好的方法,但它可以做到这一点

    如果你使用

    pointer-events: none; in your css 
    
    或者,如果您想从javascript调用它:

    elem.style.display.pointerEvents = "none";
    

    禁用与用户的交互。

    有几个选项。使用普通的旧javascript,您可以执行以下操作,例如:

    <a href="mylink.html" onclick="return false;">Download</a>
    
    
    

    
    
    使用jQuery,您可以轻松禁用许多链接:

    <a href="mylink.html" class="disabled">Download</a>
    <a href="anotherlink.html" class="disabled">Delete</a>
    
    <script>
        jQuery(document).ready(function($) {
            $('a.disabled').on('click', function(e) {
                e.preventDefault();
            });
        });
    </script>
    
    
    jQuery(文档).ready(函数($){
    $('a.disabled')。在('click',函数(e){
    e、 预防默认值();
    });
    });
    
    你甚至可以使用CSS

    <a href="mylink.html" class="disabled">Download</a>
    <style type="text/css">
        a.disabled { pointer-events: none; }
    </style>
    
    
    a、 已禁用{指针事件:无;}
    

    尽管如此,你也不会感到惊讶

    $("#fileMenu").disableContextMenuItems('#add');
      $("#fileMenu").disableContextMenuItems('#rename');
      $("#fileMenu").disableContextMenuItems('#delete');
    

    当我在ul列表中使用contextMenu类时。

    类似于
    onclick=“return false;”
    ?可能重复-值得一提的是,IE仅支持版本11中的
    指针事件
    。当指针事件关闭时,您不能强制大多数浏览器将光标显示为指针。这也可以正常工作,但请记住IE的限制,我决定选择其他选项!仍然感谢您分享您的知识:)
    $("#fileMenu").disableContextMenuItems('#add');
      $("#fileMenu").disableContextMenuItems('#rename');
      $("#fileMenu").disableContextMenuItems('#delete');