最近作移動平臺的應用,使用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'事件,在執行事件的時候中止事件的傳播,這樣行了。 事件