jquery mobile+iscroll 实现列表页滚动。
在做的过程中发现问题,是 iscroll 和jquery mobile 一起使用会滚动区域内的input,select以及button不可用。
费了好大力气才知道:
由于要通过touch事件模拟浏览器的滚动,iscroll阻止了滚动区域内的所有浏览器默认动作导致输入框焦点无法进入等问题。
解决方法:
在iscroll初始化时,注册以下方法,排除掉需要浏览器默认动作的元素
js代码
onBeforeScrollStart: function(e) { var target = e.target; while (target.nodeType != 1) target = target.parentNode; if (target.tagName != 'SELECT' && target.tagName != 'INPUT' && targ et.tagName != 'TEXTAREA' && target.tagName != 'BUTTON'){ e.preventDefault(); } }
这样就能解决啦