Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.12.2018, 20:20
Аватар для Nlk
Nlk Nlk вне форума
Кандидат Javascript-наук
Отправить личное сообщение для Nlk Посмотреть профиль Найти все сообщения от Nlk
 
Регистрация: 25.12.2016
Сообщений: 146

Реализация плагина
Добрый день.
Помогите с реализацией 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) {
         ~
       });
    }
})();

Последний раз редактировалось Nlk, 12.12.2018 в 20:34.
Ответить с цитированием
  #2 (permalink)  
Старый 12.12.2018, 21:01
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,705

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

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

Последний раз редактировалось Nexus, 12.12.2018 в 21:03.
Ответить с цитированием
  #3 (permalink)  
Старый 14.12.2018, 01:07
Аватар для Nlk
Nlk Nlk вне форума
Кандидат Javascript-наук
Отправить личное сообщение для Nlk Посмотреть профиль Найти все сообщения от Nlk
 
Регистрация: 25.12.2016
Сообщений: 146

Nexus,
Спасибо, последую вашим рекомендациям, попробую организовать код таким образом.
А this здесь для чего предполагается?
return makeDialog().open(), this;

Последний раз редактировалось Nlk, 14.12.2018 в 01:41.
Ответить с цитированием
  #4 (permalink)  
Старый 14.12.2018, 05:55
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

Сообщение от Nlk
А this здесь для чего предполагается?
для создания цепочки, как в jquery
Ответить с цитированием
  #5 (permalink)  
Старый 15.12.2018, 00:31
Аватар для Nlk
Nlk Nlk вне форума
Кандидат Javascript-наук
Отправить личное сообщение для Nlk Посмотреть профиль Найти все сообщения от Nlk
 
Регистрация: 25.12.2016
Сообщений: 146

Сделал немного иначе, скажите для плагина 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 в 21:20.
Ответить с цитированием
  #6 (permalink)  
Старый 16.12.2018, 01:06
Аватар для Nlk
Nlk Nlk вне форума
Кандидат Javascript-наук
Отправить личное сообщение для Nlk Посмотреть профиль Найти все сообщения от Nlk
 
Регистрация: 25.12.2016
Сообщений: 146

Подскажите пожалуйста.
Ответить с цитированием
  #7 (permalink)  
Старый 16.12.2018, 07:25
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

Nlk,
Модальное окно на чистом js
https://github.com/arshtepe/multiPopupJS
Ответить с цитированием
  #8 (permalink)  
Старый 16.12.2018, 07:30
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

Nlk,
https://scotch.io/tutorials/building...t-modal-plugin
https://vanillalist.top/plugins/search?s=modal
Ответить с цитированием
  #9 (permalink)  
Старый 16.12.2018, 21:17
Аватар для Nlk
Nlk Nlk вне форума
Кандидат Javascript-наук
Отправить личное сообщение для Nlk Посмотреть профиль Найти все сообщения от Nlk
 
Регистрация: 25.12.2016
Сообщений: 146

рони,
Спасибо
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
setInterval внутри плагина giv13 Элементы интерфейса 16 16.10.2014 04:58
$(this) в теле плагина prison47 jQuery 32 03.03.2013 23:50
public метод для плагина Ichigeki jQuery 1 16.02.2012 19:07
Внутреннее состояние плагина alexander2 jQuery 10 01.04.2010 12:55
Реализация Drop элемента kez jQuery 2 19.06.2009 11:18