我正在使用jQuery Mobile和Scrollview。这对我来说是完美的解决方案,因为我对jQuery Mobile中的滚动功能有一些不好的体验,并且还有一个名为iScroll的插件。
我唯一的问题是现在所有div
标签都有data-role="content"
自动启用了滚动功能,导致一些触摸事件未触发的最终问题因为触摸必须被捕获滚动。
这些错误仅发生在两个内容页面上,这两个内容页面甚至都不需要滚动。我可以通过设计滚动浏览所有内容,但有没有办法禁用某些div
标签的滚动?
答案 0 :(得分:1)
我挖掘出来源,我找到了解决方法。该插件使用类“ui-scrollview-clip”过滤掉div。 HTH。
答案 1 :(得分:0)
我遇到了同样的问题,我可以使用这个解决方案解决它(thx Dessus):
我认为你可能会发现在scrollview控件中使用了该事件。您可以覆盖该控件的javascript处理程序,以允许它继续冒泡。
要覆盖该功能,您可以使用此技术:在引用原始
时覆盖JavaScript函数快速浏览一下这个文件,看起来这个方法可以提供你想要的线索:
_handleDragMove:function(e,ex,ey)
具体是:
var svdir = this.options.direction; if(!this._directionLock)
我使用的是此处显示的scrollview版本:http://jquerymobile.com/test/experiments/scrollview/scrollview-nested.html
答案 2 :(得分:0)
我花了很长时间尝试各种各样的事情,但总的想法是我想要一个我可以用来停止滚动内容div(noscroll
)的类。
覆盖addClass
方法以防止添加ui-scrollview-view
类会在其他地方导致很多错误。我不知道为什么,页面上的另一个插件可能会再次覆盖它?
最终我不得不手动更改scrollview.js
,因为它只是一个小文件。在第19行,有一个选择器可以选择data-role
为content
的所有元素。在此选择器之后,我添加了.not('.noscroll')
。
快速更改,我确保无处不在地注意到我已经从原始文件中更改了此文件。但是在试图找到更好的解决方案5个小时后,我找到了它!
答案 3 :(得分:-1)
尝试反转滚动方向。如果你有一个水平scrollView,请执行:
$('#yourid').scrollview({ direction: 'y' });
和'x'表示垂直scrollView。 改回方向以再次启用滚动。