1
Ext.create('Ext.form.field.Picker', {
    renderTo: Ext.getBody(),
    id: 'colorpicker',

    createPicker: function() {
        return Ext.create('Ext.picker.Color', {
            resizable: true,
            floating: true,

            select: function(selColor) {
                Ext.getCmp('colorpicker').setValue("#" + selColor);
                var x = Ext.getCmp('colorpicker').getValue();
                alert(x);
                Ext.getCmp('colorpicker').setFieldStyle('background-color:x ;background-image: none;');
            }
        });
    }
});

上記のコード サンプルでは、 ​​ExtJS 4.0.7 sencha docsEXt.form.field.Pickerに従ってcreate picker メソッドを実装してカラー ピッカーを作成しました。

最初の質問

フローティング構成を true に指定した場合にのみ、出力を取得できます (上記のサンプルで説明したように)。構成を削除するか false にすると、出力にカラー ピッカーが表示されないので、フローティング構成が true であるべき理由を誰でも説明できる理由は何ですか?

2 番目の質問

上記のサンプル コードを使用して、出力を取得していますが、ピッカー フィールドのドロップダウンをクリックするとカラー ピッカーのレンダリングに問題が発生しますが、ドロップダウンがフィールドの上またはページのどこかにカラー ピッカーが表示されることがあります。クリックしました。では、これを回避するにはどうすればよいでしょうか。ピッカードロップダウンがクリックされたときに下に表示したい。

3 番目の質問

選択した色の値でファイルされたピッカーの背景を適用したいので、次のコード行を追加しました。

Ext.getCmp('colorpicker')
   .setFieldStyle('background-color:x ;background-image: none;');`

選択した色の値はどこxにありますか (たとえば#000000、カラー ピッカーから黒色を選択したときの色の値です)、テキスト フィールドに色を適用していません。

そのコード行でxvalue を次のように置き換えると、次のようになります。#000000

Ext.getCmp('colorpicker')
    .setFieldStyle('background-color:#000000 ;background-image: none;'); 

次に、フィールドの背景に黒色が表示されますが、色を選択した色に変更したいので、静的な色の値を指定できません。

4

1 に答える 1

0

2 番目の質問について: 文字列 'x' を関数に渡す代わりに ...

Ext.getCmp('colorpicker').setFieldStyle('background-color:x ;background-image: none;');

次のようなものを試してください:

Ext.getCmp('colorpicker').setFieldStyle('background-color:' + x + ' ;background-image: none;');
于 2013-04-29T12:20:10.107 に答える