最近作移动平台的应用,使用iscroll使屏幕上下滑动。发现当使用iscroll后,input等不能输入内容了。只要在iscroll.js文件中加入以下代码就ok了。 spa
function allowFormsInIscroll(){
[].slice.call(document.querySelectorAll('input, select, button')).forEach(function(el){
el.addEventListener(('ontouchstart' in window)?'touchstart':'mousedown', function(e){
e.stopPropagation();
})
})
}
document.addEventListener('DOMContentLoaded', allowFormsInIscroll, false);
问题缘由是:iscroll须要一直监听用户的touch操做,以便灵敏的作出对应效果,因此它把其他的默认事件屏蔽了。 orm
以上代码原理是:页面加载完成后查找到全部的'input, select, button'元素并依次绑定'touchstart'或'mousedown'事件,在执行事件的时候中止事件的传播,这样行了。 事件