Вход

Просмотр полной версии : Реализация плагина


Nlk
12.12.2018, 20:20
Добрый день.
Помогите с реализацией Popup плагина.


<!-- Инициализация настроек плагина в html файле -->
settings ({
button: ".classOne",
content: ".classTwo"
});



// js файл скрипта
let settings = (function() {
return function(settings) {
//получение настроек плагина
}
})();


Вопрос:
Весь остальной код плагина куда добавить?

вар1

let settings = (function() {

// если здесь добавлю код плагина то settings не доступен будет
document.addEventListener("click", function (event) {
~
//settings.button undefined
});

return function(settings) {
//получение настроек плагина
}
})();


вар2

let settings = (function() {

return {
settings: function(settings) {
//получение настроек плагина
}
},

othercode: function () {
// можно добавить сюда он будет видеть settings но тут будет много кода тогда и он будет доступен глобально
document.addEventListener("click", function (event) {
~
});
}
})();

Nexus
12.12.2018, 21:01
Можно сделать так
const settings = function(settings) {
//Other private information/methods
const makeDialog = function() {};

return { //Public api
openPopup: function {
return makeDialog().open(), this;
},
closePopup: function {}
};
};

Nlk
14.12.2018, 01:07
Nexus,
Спасибо, последую вашим рекомендациям, попробую организовать код таким образом.
А this здесь для чего предполагается?

return makeDialog().open(), this;

рони
14.12.2018, 05:55
А this здесь для чего предполагается?
для создания цепочки, как в jquery

Nlk
15.12.2018, 00:31
Сделал немного иначе, скажите для плагина popup это нормальная структура?


// HTML
popup ({
buttons: ".popup_button",
content: ".popup_content"
});



// JS
const popup = (function () {
'use strict';

document.addEventListener("click", function (event) {
// основной код popup'а
});

})();

Nlk
16.12.2018, 01:06
Подскажите пожалуйста.

рони
16.12.2018, 07:25
Nlk,
http://javascript.ru/forum/project/39359-modalnoe-okno-na-chistom-js.html
https://github.com/arshtepe/multiPopupJS

рони
16.12.2018, 07:30
Nlk,
https://scotch.io/tutorials/building-your-own-javascript-modal-plugin
https://vanillalist.top/plugins/search?s=modal

Nlk
16.12.2018, 21:17
рони,
Спасибо