Параметры плагина jQuery конфликтуют при многократном использовании на одной странице - PullRequest
0 голосов
/ 19 сентября 2018

Я пишу плагин 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); такой же.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...