一直有这个问题,在网上找答案都没有个统一、清晰的思路,今天在看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'),$parentif(!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='#'的目的应该是用来判断是否弹窗标签而已吧。个人理解,如有错误恳请指正。
添加回答
举报
0/150
提交
取消