0

私は sencha touch 2.2.0 alpha で webapp を開発しています。他のビューをプッシュするナビゲーション ビューを使用しています。これらのビューの一部の要素は、デバイスがオフラインのときは異なる外観にする必要があります。これを達成するために、navigator.onLine をチェックし、false の場合は要素に「offline」クラスを追加します。これは、要素で初めて実行したときに期待どおりに機能します。しかし、戻るボタンを押してビューをポップし、ビューをスタックに再度プッシュすると、クラスが html に追加されません。コードが示すように、dom 内のすべての li 要素を探し、それらの ID が「link」で始まる場合、クラスが追加されます。要素をログに記録すると、クラスが追加されていないことがわかりますが、オブジェクト (コード内の「obj」) をログに記録すると、「dom」プロパティがそれを示しています。私が間違っていることや誤解していることはありますか?

if ( !navigator.onLine )
{
    lis = Ext.DomQuery.select('li');

    for ( i = 0; i < lis.length; i ++ )
    {
        if ( lis[i].id.substring(0, 4) == 'link' )
        {   
            obj = Ext.get(lis[i].id);   
            obj.addCls('offline');
        }
    }
}
4

1 に答える 1

1

上記の私のコメントで述べたように、classNameをに追加し、<body>それをCSSセレクターで使用する必要があります。

コードに関しては、Sencha TouchのD​​OM構造が自動的に生成されるため機能しません。そのため、Ext.DomQueryを使用してクラスを手動で追加すると、削除/作成されてしまう可能性があるため、要素に留まらない場合があります。Sencha Touchのビュー/コンポーネントにクラスを追加するにclsは、ビューの構成を使用する必要があります。

{
    xtype: 'container',
    html: 'My view!',
    cls: 'myCustomClass'
}
于 2013-02-22T12:22:09.920 に答える