次のパターンを使用して jquery プラグインを作成しています ($("#element").myPlugin() を実行したくないため、特定の要素に対しては何もしていません..とにかく..
$.extend({
myPlugin: function(){
//some cool stuff
}
});
しかし、他のプラグインがプラグインの動作を変更する方法も必要です。次のことを試してみたところ、奇妙なエラーが発生しました...
$.extend({
myPluginStyles: {
someStuff: {},
moreStuff: {},
}
});
$.extend({
myPlugin: function(options) {
this.style = $.myPluginStyles[options.style]; //options.style will contain either "someStuff" or "moreStuf"
}
})
現在、他のプラグインは myPluginStyles オブジェクトに新しい「スタイル」を追加できます..少なくともそれがアイデアです:
$.myPluginStyles.newStyle = {};
$.myPlugin({style: 'newStyle'}); を実行できるようになりました。
しかし、次のエラーが発生します。
Uncaught TypeError: Property 'style' of object function (e,t){return new v.fn.init(e,t,n)} is not a function
前もって感謝します。