ExtJS 4子菜单需要双击才能在iPad上激活

ExtJS 4子菜单需要双击才能在iPad上激活,ipad,extjs,Ipad,Extjs,尽管Senscha声称ExtJS在移动设备上不受支持,但它工作得相当好。我唯一的一点烦恼是,弹出菜单的子菜单需要两次触摸(“点击”)才能激活 似乎第一次触摸激活了菜单,第二次触摸激活了菜单选项本身。在具有多个选项的菜单中,单击任意选项一次,所有选项都可单击 我有一个带有复选框的弹出菜单,这些都有相同的问题。单击一个激活(即蓝色背景)选项,单击2实际单击复选框 我确信有一种方法可以告诉菜单原型将第一次触摸注册为点击,但我一直找不到它。任何帮助都将不胜感激 我简直不敢相信。我想我找到办法了!很黑,但

尽管Senscha声称ExtJS在移动设备上不受支持,但它工作得相当好。我唯一的一点烦恼是,弹出菜单的子菜单需要两次触摸(“点击”)才能激活

似乎第一次触摸激活了菜单,第二次触摸激活了菜单选项本身。在具有多个选项的菜单中,单击任意选项一次,所有选项都可单击

我有一个带有复选框的弹出菜单,这些都有相同的问题。单击一个激活(即蓝色背景)选项,单击2实际单击复选框


我确信有一种方法可以告诉菜单原型将第一次触摸注册为点击,但我一直找不到它。任何帮助都将不胜感激

我简直不敢相信。我想我找到办法了!很黑,但它能用

Ext.util.Observable.observe(Ext.menu.Item);
Ext.menu.Item.on('activate', function(obj, The, eOpts) {
    if (obj.checkHandler) obj.checkHandler(obj);
    if (obj.handler) obj.handler(obj);
    if (obj.checkHandler || obj.handler) {
        if (obj.up().closable) obj.up().close();
        if (obj.up().up().closable) obj.up().up().close();
    }
});
稍后,我将需要添加实际遍历树以支持多个级别的子菜单的代码,因为现在一个是限制

这个古怪的东西可以被简单地调用菜单的Click()事件所取代,但这似乎不起作用。我试过:

Ext.menu.Item.on('activate', function(obj, The, eOpts) {
    obj.fireEvent('click');
});
有各种各样的参数,但没有运气