2011-07-30 18 views
0

プラグインが設定された後にプラグインのデフォルト値を変更する方法はありますか?例えば。jQueryプラグインのデフォルト値

var defaults = { 
imageWidth : w, 
imageHeight : h 
}; 

後でコード内でimageWidth値を再度変更したいとします。

+0

プラグインのソースにリンクできますか? –

答えて

3

多分、プラグインによって異なります。次のような場合:

(function() { 
    var defaults = { /* ... */ }; 
    // Rest of the plugin goes here. 
})(); 

あなたは運がありません。しかし、かなりの数のプラグインのようにそれらのデフォルトを公開:pluginはプラグイン名です

$.fn.plugin.defaults 

。デフォルトのようにパブリックにアクセス可能な場合(またはプラグインを公開するためにハッキングする場合)、いつでもデフォルトを変更できます。もちろん、新しいデフォルトは既存のインスタンスには適用されません。


これはあなた自身のプラグインであれば、あなたのアーキテクチャは少しばかりだと思います。 「フルスクリーン」と「指定された幅と高さ」の設定は、プラグインのオプションであり、デフォルトを賢明なものとして残しておくべきです(「感知的」は常にコンテキスト依存です)。次に、あなただけのこれを言うだろう:

$(x).plugin({ fullscreen: true }); // Full screen 
// or 
$(y).plugin({ w: 11, h: 23 });  // Specific dimensions 

ます。また、必要に応じて賢明デフォルト値を変更することができるように$.fn.plugin.defaultsトリックを使用することができます。

+0

実際には私のプラグインです。私はプラグインの後半でデフォルト値をリセットしたい。基本的に、独自の幅またはフルスクリーンを指定するオプションがあります。全画面表示の場合、ブラウザの幅を取得する必要がありますが、何らかの理由で幅を設定した後、プラグインで後でリセットすることはできません。 –

+0

@Ian:それについていくつかのアイデアを追加しました。 –

+0

フルスクリーンがオプションで、デフォルトでfalseに設定されていて、その場合に高さと幅のデフォルトがイメージサイズになった場合は、フルスクリーンかどうかを知る前にオプションをチェックする必要があります幅は既に設定されているので、私は再びそれらをリセットする必要があります。 –

関連する問題