禁用a链接

76 篇文章 0 订阅
15 篇文章 0 订阅

在bootstrap中,a链接 加上 class=".btn" 时,给a链接 disabled 属性 可实现禁用 a 链接(包括 a链接的 onclick事件)

在平时应用 a 链接时,ie8 到 ie11 支持 disabled 属性,且 可以 禁用 a 链接(包括 a链接的 onclick事件)


后经本人各种虐,终于虐出了原因,发现了一个css3 新生属性 pointer-events:none;

pointer-events:  auto | none | visiblePainted | visibleFill | visibleStroke | visible | painted | fill | stroke | all | inherit

属性值很多,但我们关注的 只需[none|auto]两个属性值,其他的值都与SVG相关。因此不再我的关注范围内。

其中”auto”的值 就是相当于 没有设置时的值。我们需要留意的只是pointer-events:none而已。


pointer-events:none 看你就知道了,就是鼠标事件none的意思。元素应用了该CSS属性,链接啊,点击啊什么的一切成空。

于是, 你可以这样
<style type="text/css">
.aaa{
    pointer-events:none;
    cursor:not-allowed;
}
</style>
<a href="www.baidu.com" class="aaa">禁用a链接</a> 


在chrome 及firefox 里面的点击事件 禁用了。 但是在ie中,不管ie几都不支持  pointer-events:none;

因此, 要禁用 a 你还需要这样

<a href="www.baidu.com" disabled class="bbb">禁用a链接</a> 

这样 加上 disabled ie8-11 就可以禁用 a 链接了。(ie7 a链接不支持 disabled 属性 ie6 不再本人的考虑范围内)


这样还有个问题就是键盘的Tab 

按 Tab 是可以选中a链接 并执行它的,这个 在 chrome firefox 中可用。

因此,我们要去掉 href 属性,这样 a 标签 就只是一个标签,不再是超链接了,Tab将它等同于普通的 标签,无视了它。


最后我们要这样

<style type="text/css">
.aaa{
    pointer-events:none;
}
</style>
<a disabled class="aaa">禁用a链接</a> 兼容 ie8-11 chrome firefox


还有一个ie7 本人一直觉得这个很有意思,但不知道原因

在ie7里,只要给 a 链接 加一个display: inline-block; 属性,它就支持 a 链接的disabled 属性了。



最后的最后
<style type="text/css">
.aaa{
    pointer-events:none;
    display: inline-block;
}
</style>
<a disabled class="aaa">禁用a链接</a>

总结 ie8-11 中 禁用 a 链接 (链接,事件,Tab) + “disabled”

ie7 中 禁用 a 链接 (链接,事件,Tab) + “disabled” + display:inline-block;

chrome firefox 中 禁用 a 链接 (链接,事件,Tab) pointer-events:none; 去掉 href。



例子:
<style type="text/css">
.aaa{
    pointer-events:none;
}
.bbb{
    display: inline-block;
}


</style>
<a class="aaa">chrome firefox 中禁用</a>
<a href="www.baidu.com" disabled class="bbb">ie7-11中禁用</a>
<a href="www.baidu.com" disabled class="ddd">ie8-11中禁用</a>
<a href="javascript:;" class="ccc">不禁用</a>
<script type="text/javascript">
$(function(){
   $('.aaa').click(function(){
        alert('chrome firefox 中禁用');
   })
   $('.bbb').click(function(){
        alert('ie7-11中禁用');
   })
   $('.ddd').click(function(){
        alert('ie8-11中禁用');
   })
   $('.ccc').click(function(){
        alert('不禁用');
   })
})
</script>


 













  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值