Я пишу плагин jQuery и хочу использовать его несколько раз на одной странице.У меня есть запрос AJAX, чтобы получить некоторые данные и затем обновить параметры плагина, но после его запуска все параметры экземпляра плагина совпадают.
Код плагина
var AliFile = function(el, options) {
this.options = $.extend(true, $.fn.aliFile.defaults, options);
this.getAliOptions();
};
AliFile.prototype.getAliOptions = function() {
var self = this;
utils.getAliOptions(this.options).done(function(response) {
console.log(self.options);
if (response.status == 200) {
self.options.maxSize = response.custom_limit.content_length_range.max;
self.options.types = response.custom_limit.type;
self.options.url = response.host;
}
}).fail(function(error) {
console.log(error);
});
};
$.fn.aliFile = function(options) {
return this.each(function() {
new AliFile($(this), options)
});
};
ПлагинКод инициализации на той же странице
$('.s-file-input').aliFile({
space: 'kmf-image',
subject: 'test-yunying-image',
product_line: 'yunying',
maxLength: 15,
selectors: {
hiddenInput: '.image-url',
uploadButton: '.s-file-select'
},
});
$('.s-doc-input').aliFile({
space: 'kmf-doc',
subject: 'test-yunying-material',
product_line: 'yunying',
multiple: true,
maxLength: 1,
selectors: {
hiddenInput: '.doc-url',
uploadButton: '.s-doc-select'
},
})
Вывод console.log(self.options);
такой же.