解决iscroll的超链接问题(针对iscroll4)

来源:互联网 发布:永琪和知画圆房视频 编辑:程序博客网 时间:2024/05/21 19:41

这个问题原因在于iscroll需要一直监听用户的touch操作,以便灵敏的做出对应效果,所以它把其余的默认事件屏蔽了,解决的方法是,在iscroll4源码里面找到这一行

1
onBeforeScrollStart: function (e) { e.preventDefault(); }

然后把它改成

1
onBeforeScrollStart: function (e) { var nodeType = e.explicitOriginalTarget © e.explicitOriginalTarget.nodeName.toLowerCase():(e.target © e.target.nodeName.toLowerCase():'');if(nodeType !='select'&& nodeType !='option'&& nodeType !='input'&& nodeType!='textarea'&& nodeType!='a') e.preventDefault(); }

这样只要你touch的元素是 select || option || input || textarea || a 时,它就不会执行e.preventDefault(),默认的事件就不会被屏蔽了。


如果你有其他不想被屏蔽的元素,可以自己修改,不过需要注意onBeforeScrollStart里的屏蔽默认事件很重要,它是iscroll进行流畅滚动的基础,不要随便的把它去掉,否则你会发现滚动起来很卡顿。

0 0
原创粉丝点击