2012-01-09 48 views
2

我使用jQuery MobileScrollview。对于我来说,这是一个完美的解决方案,就我对jQuery Mobile中的滚动函数有一些不好的经验,并再次使用一个名为iScroll的插件而言。jQuery Mobile和Scrollview自动启用滚动内容div

我唯一的问题是,现在所有div标签有data-role="content"自动启用滚动,这是一些最终的问题,其中一些触摸事件不会触发,因为触摸必须作为滚动捕获。

这些错误只出现在两个内容页面上,这两个页面甚至不需要滚动。我可以通过设计在所有内容上滚动,但有没有办法禁用某些div标签的滚动功能?

+0

我也有兴趣。任何人? – Dennis 2012-01-10 02:03:33

回答

0

我花了很长时间试图各种各样的事情,但总的想法是,我想一类,我可以使用停止滚动该内容div(noscroll)。

覆盖addClass方法来防止添加ui-scrollview-view类在其他地方导致了很多错误。我不知道为什么,可能是页面上的另一个插件试图重写它呢?

最终我不得不手动更改scrollview.js,因为它发生的只是一个小文件。在第19行,有一个选择器可以选择data-rolecontent的所有元素。在选择器之后,我添加了.not('.noscroll')

快速更改,我确保我注意到我无处不在,我可以改变这个文件从原来的。但经过5个小时试图找到更好的解决方案,我已经解决了!

0

我有同样的问题,我可以使用此解决方案(THX Dessus)解决它:

我想你可能会发现,该事件在滚动视图控制消耗。您可以覆盖该控件的JavaScript处理程序以允许它继续冒泡。

覆盖您可以使用这种技术的功能:重写JavaScript函数,同时参照原

有一个快速浏览一下文件,它看起来像这种方法可容纳线索,你想要什么:

_handleDragMove:功能(例如,EX,EY)

具体:

变种svdir = this.options.direction;如果(this._directionLock!)

我用这里显示的滚动型的版本:http://jquerymobile.com/test/experiments/scrollview/scrollview-nested.html

+0

我试过这个addClass函数,但它打破了一些addClass调用,我永远不能解决它。我最终修复了这个问题,当我到达一台PC时(电话atm),我会发布解决方案 – Connell 2012-01-10 08:24:18

1

我挖掘了源代码并找到了解决方法。该插件使用类“ui-scrollview-clip”过滤掉div。 HTH。

+0

好的解决方案!谢谢! – 2012-06-28 22:33:46

-1

尝试反转滚动方向。如果您有水平滚动视图,请执行以下操作:

$('#yourid').scrollview({ direction: 'y' }); 

而'x'表示垂直scrollView。 更改方向以再次启用滚动。

+0

这是如何禁用滚动? – 2012-10-20 18:54:28