javascript - 在特定 View 中禁用抽屉的滑动打开

标签 javascript jquery kendo-ui kendo-mobile

我正在使用 Kendo Mobile 开发一个 Web 应用程序,并将抽屉小部件用作菜单。我的 View 之一是 Google map ,出于显而易见的原因,我想在此 View 中禁用 Kendo Mobile 抽屉的滑动打开功能...

我试过以下方法:

绑定(bind)抽屉的beforeShow事件

...如果当前 View 是 map View 则阻止它打开

    beforeShow: function (beforeShowEvt) {
        if(app.view().id == "#stationMap") {
            beforeShowEvt.preventDefault();
        }
    }

问题在于,当我点击顶部栏中的菜单按钮时,它也会触发(并阻止抽屉打开)。

我查看了 beforeShowEvt,似乎无法找到任何信息让我知道它是通过滑动还是通过菜单点击触发的。

绑定(bind)到包含div的谷歌地图

...并捕获 touchstart 事件以阻止它们传播和被 Kendo 拾取。

这根本不起作用。

最佳答案

这是我解决问题的方法:

  1. 向 Google map 的 dragstart 事件添加了一个事件处理程序,该事件将标志设置为 true

  2. 向抽屉按钮的 touchstart 事件添加事件处理程序,将此标志设置为 false

  3. 在 Drawer 的 beforeShow 事件中添加了检查,以查看标志是否为 true,如果为 preventDefault();

像魅力一样工作!

关于javascript - 在特定 View 中禁用抽屉的滑动打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18659149/

相关文章:

c# - jquery 文本框在 asp.net 中不返回任何值

javascript - javascript异步加载与jquery ajax(或getscript)异步加载的优缺点

asp.net - Kendo UI 的替代品?

javascript - optionLabel 文本最初不显示/kendodropdownlist

javascript - 在 Kendo Angular DatePicker 中禁用 future 日期

javascript - 如何使用 JavaScript 在 HTML 数据表中可视化 MySQL 表中超过 1000 行的数据?

javascript - 如何在不调用方法的情况下通过另一个方法传递一个方法,并将一个变量对象传递给它?

javascript - this 指的是单击的对象而不是 namespace

javascript - 将元素定位在特定高度

jQuery portlet 和对话框问题