最近做移动项目接触到了jquery moblie ,项目中要求 使用jquery mobile listview +iscroll实现区域滚动。
但是在做的过程中发现问题,是 iscroll 和jquery mobile 一起使用会导致 filter 不能使用。结果在网上找了半天,最后还是一个群里面的朋友告诉我:
由于要通过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(); } }