我正在使用Kendo Mobile开发一个Web应用程序,并使用Drawer小部件作为菜单。我的一个观点是谷歌地图,我想在这个视图中禁用剑道移动抽屉的滑动到开放功能,原因显而易见......
我尝试了以下内容:
...如果当前视图是地图视图,则停止打开
beforeShow: function (beforeShowEvt) {
if(app.view().id == "#stationMap") {
beforeShowEvt.preventDefault();
}
}
这个问题是,当我点击顶部栏中的菜单按钮时,它也会触发(并防止抽屉打开)。
我查看了beforeShowEvt,如果通过刷卡菜单点击触发它,似乎找不到任何东西让我知道。
...并抓住touchstart事件以阻止他们传播并被剑道接听。
这根本没用。
答案 0 :(得分:2)
以下是我解决问题的方法:
为Google Map的dragstart
事件添加了一个事件处理程序,该事件将标志设置为true
为Drawer按钮的touchstart
事件添加了一个事件处理程序,该事件将此标志设置为false
在抽屉的beforeShow事件中添加了一个检查,以查看标志是否为true
,如果是preventDefault();
像魅力一样!
答案 1 :(得分:1)
我知道这不是真正的答案,但我有一个解决方法。只需创建一个新的.html文件并将google小部件放入其中,然后调用它:
app.navigate("nodrawerwidgets.html");
OR
<a href="nodrawerwidgets.html">Google widget<a>
我的第一个想法是通过将小部件包装在div中来拦截滑动操作:
<div id="divStopSwipe">
...
$("#divStopSwipe").kendoTouch({
enableSwipe: true,
swipe: function (e) { //do nothing or figure out how to let the action pass down to the widget
}
});
..但是这会阻止Google小部件获取滑动操作。
希望这有点帮助 - 我也是移动ui的新手。