1

现在我正在做一个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>

我真的在为此苦苦挣扎,谁能帮助我..

提前致谢..

4

3 回答 3

3

在您启动滚动条的功能中

myScroll = new iScroll('scroller');

使用onBeforeScrollStart : null. 这意味着你的滚动启动应该是这样的

myScroll = new iScroll('scroller', { onBeforeScrollStart : null });

onBeforeScrollStart这是因为在 iScroller 插件中搜索功能,你可以找到

onBeforeScrollStart: function (e) { e.preventDefault(); }

只需在鼠标按下时,它就会触发此功能并阻止其默认事件。所以你的输入元素变得无响应。

因此,当您在没有输入元素的情况下覆盖onBeforeScrollStart函数时,e.preventDefault()将变得响应。

于 2013-04-08T05:25:08.397 回答
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);
于 2013-05-04T05:40:12.850 回答
0

试试这个工作

  var selectField = document.getElementById('txt_Field');
      selectField.addEventListener('touchstart', function(e)
      {
        e.stopPropagation();
      }, false);
于 2013-05-03T10:09:35.423 回答