zoukankan      html  css  js  c++  java
  • 实现a标签按钮完全禁用

    前言

    最近在开发时遇见一个问题

    我们知道a标签的disabled属性部分浏览器支持,但是尽管设置了disabled属性也无法阻挡任何鼠标经过或是点击事件的,那么如何实现a标签按钮的禁用呢?

    转换一下思维,设置disabled属性的元素表现为不能点击、无法获得光标焦点,那么我们不用disabled属性实际上也可以达到同样的效果!

    实现

    方法一:移除点击事件click或touchend

    我们可以直接使用jquery:unbind()或者JS:removeEventListener()移除点击事件

    方法二:给a标签设置css属性pointer-events:none

    pointer-events:none是css3中的属性,表示禁用鼠标事件,这样实际上也是将click事件去掉了!

    方法三:移除a标签的href属性

    我们可以使用jquery:removerAttr()或者JS:removeAttribute()移除a标签的href属性

    注意不能将href属性赋值为空,因为空的a标签会跳转到本页

    完美禁用

    我们在设置了pointer-events:none后发现元素仍然会被focus到,那么如何解决这个问题呢?

    给a标签设置disabled属性虽然不能禁用鼠标事件,但是可以禁用键盘事件!!!

    无href + pointer-events:none + disabled = 完美禁用

    进一步整理 

    pointer-events:none & without href = 完美禁用

  • 相关阅读:
    BZOJ 2212/BZOJ 3702
    BZOJ 4761 Cow Navigation
    BZOJ 3209 花神的数论题
    BZOJ 4760 Hoof, Paper, Scissors
    BZOJ 3620 似乎在梦中见过的样子
    BZOJ 3940 Censoring
    BZOJ 3942 Censoring
    BZOJ 3571 画框
    BZOJ 1937 最小生成树
    BZOJ 1058 报表统计
  • 原文地址:https://www.cnblogs.com/kunmomo/p/11751656.html
Copyright © 2011-2022 走看看