Показать сообщение отдельно
  #1 (permalink)  
Старый 26.09.2016, 12:23
Новичок на форуме
Отправить личное сообщение для ivanx Посмотреть профиль Найти все сообщения от ivanx
 
Регистрация: 26.09.2016
Сообщений: 3

Функции инициализирующая плагин.
Добрый день.

Есть метод который, который принимает html елемент или елементы и работает с ними(плагин). Проблема состоит в реализации инициализации плагина.
Небольшой примерчик
(function() {

function Test(el) {
  this.el = el;
  this.init();
}
Test.prototype.init() {
  // работает с this.el
}
Test.prototype.destroy() {
  // this.el = null
}

window.Test = Test;

})();

var obj = new Test(document.querySelector('div'));
// если нужно
obj.destroy();


А если скажем елементов не один, а много, то хотелось бы создавать экземпляр класса внутри цикла, например
(function() {

function _(el) {
  this.el = el;
  this.init();
}
_.prototype.init() {
  // работает с this.el
}
_.prototype.destroy() {
  // this.el = null
}

function Test(selectors, method) {
  var el = document.querySelectorAll(selectors);
  [].forEach.call(el, function(element) {
    // *1
    var obj = new _(element);
  });
}

window.Test = Test;

})();

Test('div');

*1) Надо проверить не был ли обьект уже инициализирован, в jQuery есть метода $.data, в который можно сохранить весь обьект, и если например передан метод destroy, то запустить на обьекте destroy. А как быть в случае без jquery.

Хотелось бы, чтобы сам плагин работал с одним элементом, а если элементов много то вызывался в цикле. Может есть более удачные варианты организации плагина, заранее спасибо за любые советы в этом направлении.
Ответить с цитированием