2012-12-17 8 views
9

私はアプリでjQuery UIの完全なボアコピーを持っているので、CDNまたはローカルから読み込んでいるかどうかは関係ありません。 (私たちはCDNからロードする場合ので、私たちの唯一の選択肢は、はい、ライブバージョンをモンキーパッチするのですか?)この例ではjQueryUI ProgressBarを正しくマスターしていますか?

私から見る:https://github.com/jquery/jquery-ui/blob/master/ui/jquery.ui.progressbar.jsthis.minが、残念ながら設定可能なオプション(対照的にthis.options.max)でないこと。私の場合はthis.min-1である必要があります(そして、アプリケーション全体で、チーム内でこれについて議論しました.jQueryの決定の理由を理解しています。プロトタイプをモンキーにしたり、自分のプラグインを維持することができます。また、jQueryのUIオブジェクトをロードするために、現在「ウィジェット」アーキテクチャを使用していることがわかります。

/javascripts/lib/jquery.min.js 
/javascripts/lib/jquery-ui.min.js 
... 
/javascripts/company.utils.js 
/javascripts/company.helpers.js 
... 
page level includes of javascript libraries 
... 
page level javascript 

は、だから私はcompany.utils.jsに行こうと思っていますので、などのモンキーパッチ定義:この特定のアプリケーションで

は、私のスクリプトは大体そうのようにロードされている

$.ui.progressbar.prototype.min = -1; 

しかし、これがこのオブジェクトをmonkeypatchする正しい方法であるかどうか私は不思議です。それは確かですが、もっと広いStackOverflowコミュニティにお尋ねし、今後の検索人にとってうまくいくものを提供すると考えました。

答えて

4

はい、正しいです。あなたはjQueryのUI 1.9を使用している場合あるいは、あなたはあなたの拡張機能を定義するためのウィジェットファクトリを使用することができます。

$.widget("ui.progressbar", $.ui.progressbar, { 
    min: -1 
}); 

それは少し冗長ですが。

+1

whoa whoa whoa、私は_that_のようなプロトタイプをmonkeypatchできますか?それは将来の破損が起こりにくいようです... – jcolebrand

関連する問題