有没有办法在Kendo UI Mobile ScrollView中禁用滑动事件?

时间:2012-11-15 17:37:29

标签: jquery cordova scrollview kendo-ui

我正在使用KendoUI Mobile的ScrollView控件作为旋转木马来处理一些问题并需要为其禁用滑动事件(我使用“next”和“previous”按钮来控制“导航”) 。

我遇到的问题是我在ScrollView中有jQuery-UI slider,但当我尝试更改滑块值时,它开始将ScrollView移动到下一个“页面”。

我希望有一种原生的方法可以禁用ScrollView上的“滑动移动”,但我在文档中找不到任何内容。

我一直在玩ScrollView页面上的事件,但是却无法获得适用于实际设备的内容:

$('#scrollview-container [data-role="page"]').on('mousedown', function(e) {
    console.log('mousedown');
    e.stopImmediatePropagation();
});
$('#scrollview-container [data-role="page"]').on('touchstart', function(e) {
    console.log('touchstart');
    e.stopImmediatePropagation();
});

上述内容适用于我的模拟器,但不适用于实际设备。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

要正确阻止事件,您需要在设置滑动事件时确切了解绑定的完成方式和时间。 on(),bind()和live()会生成不同的事件顺序,如果在事件开始滑动后阻止它,它将无济于事。

阻止子元素上的事件可能会更好,因为相对于框架设置的事件的顺序无关紧要。尝试停止从滑块的直接父级传播触摸事件。

答案 1 :(得分:0)

在此处回答:http://www.telerik.com/forums/scrollview-is-missing-a-lot-of-essential-functionality-(-)

var scrollview = $("[data-role=scrollview]").getKendoMobileScrollView();
var cancel = function() { this.cancel(); };

scrollview.pane.userEvents.bind("start", cancel); //disable the pages movement

// to no-longer disable the swipe use this:
// scrollview.pane.userEvents.unbind("start", cancel); //enable the pages movement