我正在使用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();
});
上述内容适用于我的模拟器,但不适用于实际设备。
有什么想法吗?
答案 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