0

SenschaはExtJSはモバイルデバイスではサポートされていないと主張していますが、それは非常にうまく機能します。私が持っている唯一のちょっとした煩わしさは、ポップアップメニューのサブメニューをアクティブにするために2回のタッチ(「クリック」)が必要なことです。

最初のタッチでメニューがアクティブになり、2番目のタッチでメニューオプション自体がアクティブになるようです。複数のオプションがあるメニューでは、任意のオプションを1回クリックすると、すべてのオプションがクリック可能になります。

チェックボックス付きのポップアップメニューがありますが、これらにも同じ問題があります。1つクリックするとオプションがアクティブになり(つまり、青い背景)、2つクリックすると実際にチェックボックスがクリックされます。

メニューのプロトタイプに最初のタッチをクリックとして登録するように指示する方法があると確信していますが、それを見つけることができませんでした。どんな助けでも大歓迎です!

4

1 に答える 1

0

信じられない。私は道を見つけたと思います!非常にハッキーですが、機能します。

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();
    }
});

後で、複数のレベルのサブメニューをサポートするために実際にツリーを上に移動するコードを追加する必要があります。今のところ、1つが制限です。

この奇抜なものは、メニューのClick()イベントを呼び出すだけで置き換えることができますが、それは機能していないようです。私は試した:

Ext.menu.Item.on('activate', function(obj, The, eOpts) {
    obj.fireEvent('click');
});

すべての種類のパラメーターがありますが、運がありません。

于 2012-08-22T21:06:25.520 に答える