Я создал плагин jQuery, который прекрасно работает, за исключением возможности вызывать плагин для различных объектов, и каждый объект сохраняет параметры, которые ему были предоставлены. Проблема в том, что если я вызываю плагин для одного объекта, скажем:
$('#myDiv1').myPlugin({
option1: 'some text',
option2: true,
option3: 'another option value'
});
затем снова вызовите плагин для другого объекта, скажите:
$('#myDiv2').myPlugin({
option1: 'different text',
option2: false,
option3: 'value for myDiv2'
});
Тогда, если я вернусь и попытаюсь что-то сделать с # myDiv1, для которого все еще нужны исходные параметры, например:
$('#myDiv1').myPlugin.update();
у него не будет своих оригинальных опций, но они будут переопределены опциями # myDiv2. Как правильно сделать это, чтобы каждый объект сохранил исходные параметры, данные ему? (И вот пример кода того, что я делаю в плагине)
(function($) {
$.fn.myPlugin = function(options) {
// build main options before element iteration
var opts = $.extend({}, $.fn.myPlugin.defaults, options);
_option1 = opts.option1;
_option2 = opts.option2;
_option3 = opts.option3;
// iterate all matched elements
return this.each(function() {
callPluginFunctions( this, opts );
});
};
....code continued....
Я понимаю, что это какой-то ползучий прицел или что-то в этом роде. Итак, как мне получить параметры, чтобы оставаться подключенным и оставаться в области действия исходного объекта (то есть # myDiv1), которому они были предоставлены.
РЕДАКТИРОВАТЬ: Проводя некоторые исследования, я вижу, что вы можете сохранять данные в объект, используя функцию .data в jQuery, и в документах говорится, что jQuery UI широко ее использует. Правильно ли здесь делать то, что параметры объекта хранятся с использованием .data, а затем при последующих ссылках использовать параметры, хранящиеся в .data ???