Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const popup = function Popup(el, triggerButton) {
- this.el = el;
- this.triggerButton = triggerButton;
- this.open = false;
- this.closeButton = this.el.querySelector(".ui-popup-close-button");
- this.toggleActiveClass = () => {
- this.el.classList.toggle("--active");
- };
- this.clickOutside = (e) => {
- if (!this.checkElemContains(e.target)) {
- this.open = false;
- this.toggleActiveClass();
- document.removeEventListener("click", this.clickOutside);
- }
- };
- this.checkElemContains = (target) => {
- return this.el.contains(target);
- };
- this.triggerButton.addEventListener("click", () => {
- this.open = true;
- this.el.classList.add("--active");
- });
- this.closeButton.addEventListener("click", () => {
- this.open = false;
- this.el.classList.remove("--active");
- });
- };
- const jsLkPopup = document.querySelector(".js-lk-popup");
- const jsLkPopupTrigger = document.querySelector(".js-lk-popup-trigger");
- const jsGetProdcutPricePopup = document.querySelector(
- ".js-get-product-price-popup"
- );
- const jsGetProdcutPriceTrigger = document.querySelector(
- ".js-get-product-price-trigger"
- );
- const popups = [
- [jsLkPopup, jsLkPopupTrigger],
- [jsGetProdcutPricePopup, jsGetProdcutPriceTrigger],
- ];
- for (let i = 0; i < popups.length; i++) {
- if (popups[i][0] && popups[i][1]) {
- new popup(popups[i][0], popups[i][1]);
- console.log(new popup(popups[i][0], popups[i][1]));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement