ページ上の複数のオブジェクトでテストを開始するまで、jQueryプラグインを作成しました。問題は、新しいプラグインオブジェクトに渡されるオプションオブジェクトが、プラグイン内の関数の内部からアクセスする際に、その特定のオブジェクトに関連付けられたオプションオブジェクトと必ずしも同じであるとは限りません。非常にシンプルなものが欠けていると感じていますので、コードによって明らかになることがあります。オプションには関係なく、私はプラグインを作成したときだったものoptions.somePropertyjQueryプラグイン - オプションオブジェクトを別に保持
$.myPlugin = function($textbox, options) {
function doSomething($textbox) {
alert(options.someProperty);
}
}
オブジェクトなかっアクセスするプラグイン
$.fn.myPlugin = function(options) {
return this.each(function() {
var opts = $.extend({}, $.myPlugin.defaults, options);
new $.myPlugin($(this), opts);
});
}
関数を作成するために使用さ
方法。
$textbox.focus(function() { doSomething($textbox); });
これは常に異なるオプションオブジェクトと異なるオブジェクトがある場合でも、同じsomePropertyを返します:プラグイン内部のdoSomethingの呼び出しは常に私には、例えば最初に作成プラグインオブジェクト内のオブジェクト最初のオプションのsomePropertyを返します。集中している。
私はこれを十分に明確にしたいと思います。もう細かいことが必要な場合はお知らせください。
正確には何らかのプロパティがありますか?それはネストされていますか(例えば 'options.mouseSettings.clickSpeed')? – SLaks
いいえ、単純な値です。 var options = {someProperty:true} –
myPluginメソッドの外でdosomethingを呼び出していますか? – SLaks