3

我想要一个可滚动的容器,它使用 iScroll4 托管一个可滚动的列表。我让一切都靠自己运行:

http://jsfiddle.net/BH2F3/

(预览版无法使用,请下载本地试用)

现在的问题是:

当我在列表上执行滚动操作时,外部容器也会滚动。如何保护外部容器不滚动并仅将滚动操作应用于嵌套列表?我已经尝试“捕捉”到列表但没有成功。我必须绑定到“onBeforeScrollStart”吗?

官方实现是 : onBeforeScrollStart: function (e) { e.preventDefault(); },所以我希望外部容器不会滚动。

4

2 回答 2

3

刚发现:

这不是默认预防问题,而是事件冒泡问题。

解决方案是覆盖 onBeforeScrollStart !

            onBeforeScrollStart: function (e) { 
            e.preventDefault();
            e.stopPropagation();
            },
于 2012-11-01T14:48:58.193 回答
3

对于当前版本,该事件beforeScrollStart没有参数event。这可以通过以下方式完成:

iscroll.on('beforeScrollStart', function() {
    scroll.disable();
});
iscroll.on('scrollEnd', function() {
    scroll.enable();
})
于 2015-06-09T01:17:36.803 回答