现在我正在做一个phonegap应用程序,我将'iscroll4'添加到我的项目,因为我需要滚动页面,但不幸的是,在我添加'iscroll.js'之后我的输入文本字段没有响应(我无法输入任何内容到textfeilds )。我的代码看起来像这样:
<script type="text/javascript" src="cordova-2.2.0.js"></script>
<script type="text/javascript" src="js/iscroll.js"></script>
<script type="text/javascript">
var myScroll;
function loaded()
{
document.addEventListener('touchmove', function(e){ e.preventDefault(); });
myScroll = new iScroll('scroller');
}
document.addEventListener('DOMContentLoaded', loaded);
我的滚动部分来自下面的div
<div id="wrapper">
<div id="scroller">
//scrolling items..
</div>
</div>
我真的很挣扎,任何人都可以帮助我..
提前致谢..
答案 0 :(得分:3)
在启动滚动条的功能
中myScroll = new iScroll('scroller');
使用onBeforeScrollStart : null
。这意味着您的滚动条启动应该如下所示
myScroll = new iScroll('scroller', { onBeforeScrollStart : null });
这是因为在iScroller插件中搜索onBeforeScrollStart
功能,你可以找到
onBeforeScrollStart: function (e) { e.preventDefault(); }
只需在您的mousedown上触发此功能并阻止其默认事件。所以你的输入元素变得没有响应。
因此,当您在没有onBeforeScrollStart
的情况下覆盖e.preventDefault()
函数时,您的输入元素将会响应。
答案 1 :(得分:2)
这对我有用......
function loaded() {
testScroll = new iScroll('wrapper', {
useTransform: false,
bounce: false,
onBeforeScrollStart: function (e)
{
var target = e.target;
while (target.nodeType != 1) {
target = target.parentNode;
}
if (target.tagName != 'SELECT' && target.tagName != 'INPUT' && target.tagName != 'TEXTAREA' && target.tagName != 'OPTION') {
e.preventDefault();
}
}
});
}
setTimeout(function () { testScroll.refresh(); }, 200);
答案 2 :(得分:0)
尝试这个工作
var selectField = document.getElementById('txt_Field');
selectField.addEventListener('touchstart', function(e)
{
e.stopPropagation();
}, false);