添加'iscroll'-PhoneGap后输入字段没有响应

时间:2013-04-06 05:13:23

标签: cordova phonegap-plugins iscroll

现在我正在做一个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>
我真的很挣扎,任何人都可以帮助我..

提前致谢..

3 个答案:

答案 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);