为何点击A标签没反应

  下午做为老大(他是做产品的)让我尝试破解一下kodexplorer(一个PHP做的文件管理工具),做为一名前端,完全根本就看不懂PHP。
  就在我装模作样在百无聊赖的尝试的时候,QQ闪了。点开一看,是我一大学同学。

image:他给我发了一图,就是这张

  问:“为何点击不能下载”。我下意识的让他给A标签添加一个download="true"试试。
  回复:“还是不行”

  想想也是正常。download是HTML5给A增加的一个新属性,作用是告诉浏览器这个链接的文件以下载的方式处理,download属性的值就是文件的名称(个人理解,具体定义可以去w3c搜一搜)。但在没有这个属性之前,当A标签链接是浏览器不能直接执行或者解析的文件时,默认就会变成下载。这里链接的是一个文件,所以应该是下载。是否添加download都该是同一个效果。

  现在我们来看看。那还能有什么原因呢?我马上想到是js把A标签的默认事件阻止了。

image

  然后我还问了问是不是标签交叉了,标签交叉不同浏览器会有些不同的表现,然后他告诉我并没了并且发了图片给我

图3

  所以我认为很有可能是JS阻止了A标签的默认行为。并告诉了他如何处理。

  然后我俩突然跳出了这个话题,聊了还一会之后。我问刚刚的问题解决了没有。回答没有,还是不知道怎么弄。

image

  这里我get到了一个新玩意,TeamViewer。。。我之前一直都还是使用的QQ远程,和这个比一下真的差距太大了。连上远程之后,正好他也是用的Chrome,在Chrome浏览器里把A标签事件移除之后,果断点击有有了效果。所以肯定就是事件禁止了A标签的默认行为。

image

  其实那个remove我也是今天才发现的,才知道还可以这样玩。

  最后确定是,div标签的data-toggle="buttons"引起的,去掉buttons就恢复正常。这边想去研究一下为啥boostrap会把A标签的默认行为给禁止了,我尝试了下载了一个bootstrap引用了一下,对照他的那个结构写了标签尝试了一下,没有复现出你的那个bug。data-toggle="buttons"在boostrap官网貌似并没有见过这个值,应该是引用了一些基于bootstrap的插件引起的问题。然后也就到下班的时间了,我也就没继续深究了

  总结一波,A标签点击无反应无非就是以下几种情况

  1. 标签使用不合法:href属性写错了,标签没有回之类的问题。

  2. 其它图层将A标签遮挡住了,根本点不到A标签

  3. 就是上面这种默认事件被阻止了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值