1

デフォルトまたはユーザーによって定義されたオプションを持つモーダル プラグインを作成しました。これらの値の大部分は関数に渡されて更新されます。これが発生した場合、オプションで値を更新したいと思います。理想的には、個々のオブジェクトを個別に更新する必要はなく、オブジェクト (オプション) を全体として処理および更新したいと考えています。

以下は、ユーザーのオプションです。

modalDialog({
    ID: 'before_unload',
    title: 'opt.heading',
    message: 'opt.text',
    confirm: 'opt.confirm',
    cancel: 'opt.cancel',
    link: $(this).attr('href'),
});

「opt」で始まる各オプション。それらに対して機能が実行されます。オプションを扱う modalDialog プラグインのコードは次のとおりです。

var options = $.extend(defaults, options);
        return this.each(function() {
            var o = options;
            var reg = '^opt.*'; //regex to find all 'opt.' values
            console.log(o);
            $.each(o, function(i, v) { //for each value
                if(i != 'save'){    
                    if(v.match(reg)){ // match to regex
                        console.log(i+': '+v);
                        var newval = rc.getResource(v); // function to update value
                        console.log(newval); //value has been updated, function works
                        v = i.replace(i, newval); // update the index with new value
                        console.log('New i:v = '+i+': '+v); // checked and it works

//Now the question is, how do I update o (options with the new values?)

                    }
                };
            });

上記のコードで、rc.getResource(v) が、渡された値に応じて異なる家畜の名前で戻ってくると仮定して、新しい家畜の名前で値を更新し、すべてが一致することを確認し、オプションを更新するまで、すべてがうまくいっています。私は試してみo = options.replace(i,v)ましたが、options.replace は関数ではありません。

私が考えたことの1つは、新しい値を作成した後(機能を実行した後)、対応するi:vの設定を解除/削除し、新しい値をオブジェクトに追加することでした。

i1 = i;
v1 = i.replace(i, newval);
o -=  i:v;
o += i1:iv;

悲しいかな、私の脳は疲れ果てており、切実に助けが必要です。

4

1 に答える 1

4

あなたはこれを行うことはできませんか?:

o[i] = v;
于 2012-07-12T13:56:21.980 に答える