为了账号安全,请及时绑定邮箱和手机立即绑定

html的a标签后续绑定js事件,href属性设置为#还是javascript:;或者javascript:void(0);好?

html的a标签后续绑定js事件,href属性设置为#还是javascript:;或者javascript:void(0);好?

慕桂英3389331 2019-04-08 11:18:13
一直有这个问题,在网上找答案都没有个统一、清晰的思路,今天在看bootstrap文档时又遇到了(详见:“如果你选择使用连接标签的话,在iOS设备上需要一个href="#"配合点击事件”),所以想在sf里问问看有没有熟悉这方面知识的人给解答一下,谢谢!另外:bootstrap关于“iOS设备上需要一个href="#"”里的href="#"是不是等价于href="javascript:;"?相关问题已在站内搜索,列出如下:http://segmentfault.com/q/1010000000355766http://segmentfault.com/q/1010000000339082不需要很长的回答,仅一两句或者一个list能给出一个理解思路就可以了,再次谢谢!
查看完整描述

2 回答

?
繁花不似锦

TA贡献1851条经验 获得超4个赞

不一样,#是跳转到锚点,没指定就跳到页面首行去了,javascript:;则是执行一个空的js命令,不会进行跳转,具体你给的网址都写的挺清楚了。我猜测原文的意思只是说要给a标签添加上href属性的意思吧,通过读取href="#"这个属性插件达到阻止跳转的目的。
另外这句话的原文是
iOSdevicesrequireanhref="#"forclickeventsifyouwouldratheruseananchor.
继续补上Bootstrap的相关代码:
Alert.prototype.close=function(e){
var$this=$(this)
,selector=$this.attr('data-target')
,$parent
if(!selector){
selector=$this.attr('href')
selector=selector&&selector.replace(/.*(?=#[^\s]*$)/,'')//stripforie7
}
$parent=$(selector)
e&&e.preventDefault()
$parent.length||($parent=$this.hasClass('alert')?$this:$this.parent())
$parent.trigger(e=$.Event('close'))
if(e.isDefaultPrevented())return
$parent.removeClass('in')
functionremoveElement(){
$parent
.trigger('closed')
.remove()
}
$.support.transition&&$parent.hasClass('fade')?
$parent.on($.support.transition.end,removeElement):
removeElement()
}
如果我没看错以及理解错代码的话,加上href='#'的目的应该是用来判断是否弹窗标签而已吧。个人理解,如有错误恳请指正。
                            
查看完整回答
反对 回复 2019-04-08
  • 2 回答
  • 0 关注
  • 723 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信