35 Ucapan Selamat Pagi untuk Pasangan

Ilustrasi ucapan selamat pagi untuk pasangan.

Lihat Foto

Ilustrasi ucapan selamat pagi untuk pasangan.(SHUTTERSTOCK)

Ilustrasi ucapan selamat pagi untuk pasangan.

KOMPAS.com - Ucapan selamat pagi untuk pasangan terkadang menjadi semangat sebelum memulai hari yang padat dan melelahkan.

Tak hanya itu, ucapan selamat pagi ini juga bisa membuat pasangan merasa diperlakukan secara istimewa.

Karenanya, perlu pemilihan kata dan ucapan yang tepat agar pasangan bisa tersenyum setelah membaca atau mendengar ucapan itu.

Baca juga: 30 Ucapan Pernikahan dalam Bahasa Inggris dan Artinya

Berikut kami sajikan 35 ucapan selamat pagi untuk pasangan, dikutip dari Best Life Online dan Good House Keeping:

  1. Good morning, sunshine! I am so blessed to have you in my life (Selamat pagi, sinar matahari! Saya sangat diberkati memilikimu dalam hidup saya)
  2. Good morning, darling! I hope you experience nothing less than an amazing day (Selamat pagi kesayangan! Saya harap kamu menjalani hari yang luar biasa)
  3. Just wanted to wish my girlfriend good morning! (Hanya ingin mengucapkan selamat pagi kepada kekasihku!)
  4. Good morning, heartbeat! I'll be thinking of you all day long (Selamat pagi, detak jantungku! Aku akan memikirkanmu sepanjang hari)
  5. Just wanted to wish my girlfriend a good morning! I love being your alarm clock (Hanya ingin mengucapkan selamat pagi kepada kekasihku! Saya suka menjadi jam alarm kamu)
  6. Good morning to the woman I love and admire most in this world (Selamat pagi untuk wanita yang paling aku cintai dan kagumi di dunia ini)
  7. Good morning, dream girl. Hugs and kisses from your biggest fan (Selamat pagi, gadis impian. Peluk dan cium dari penggemar terbesarmu)
  8. Good morning to a truly lovely lady. I hope you have a blessed day ahead! (Selamat pagi untuk wanita yang benar-benar cantik. Saya harap Anda memiliki hari yang diberkati!)
  9. Good morning, sunshine. I hope you have a day filled with laughter and happiness ahead (Selamat pagi, matahari. Saya harap Anda memiliki hari yang penuh dengan tawa dan kebahagiaan di masa depan)
  10. Time to open your eyes and embrace this wonderful world. Welcome to another fantastic morning! (Saatnya membuka mata dan merangkul dunia yang indah ini. Selamat datang di pagi yang fantastis lainnya!)
  11. Good morning, angel! Wishing you an amazing day ahead (Selamat pagi malaikat! Semoga Anda mendapatkan hari yang luar biasa di depan)
  12. Good morning, my love. I just wanted to let you know that I was thinking about you (Selamat pagi, sayangku. Aku hanya ingin memberitahumu bahwa aku sedang memikirkanmu)
  13. Time to open those bright blue eyes! Another wonderful morning is waiting for you (Saatnya membuka mata biru cerah itu! Pagi indah lainnya sedang menunggu Anda)
  14. Hello, sunshine! May this morning bring luck and happiness your way (Halo, matahari! Semoga pagi ini membawa keberuntungan dan kebahagiaan di jalanmu)
  15. I may have a hectic and tiring day ahead, but the thought of your beautiful smile is enough to keep me going all day (Saya mungkin mengalami hari yang sibuk dan melelahkan, tetapi memikirkan senyum indah Anda sudah cukup untuk membuat saya terus berjalan sepanjang hari)
  16. It's a lovely morning, but it would be better if I could spend it with you (Ini pagi yang indah, tapi akan lebih baik jika aku bisa menghabiskannya bersamamu)
  17. I wish that I was the sun so that I could caress your face, even after you step out the door. Good morning, my queen (Saya berharap bahwa saya adalah matahari sehingga saya bisa membelai wajahmu, bahkan setelah kamu keluar dari pintu. Selamat pagi Ratuku)
  18. Wishing you a very good morning, dear! Hope everything comes easy today. The thought of seeing you later is putting a huge smile on my face (Semoga pagimu menyenangkan, sayang! Semoga semuanya dimudahkan hari ini. Pikiran untuk bertemu denganmu nanti membuatku tersenyum lebar)
  19. Wake up my love. Flowers, smiles and laughter are waiting for you (Bangunlah cintaku. Bunga, senyum dan tawa sedang menunggumu)
  20. Meet a new day, sweetheart! I promise to fill it with my unconditional love, hours of laughter and endless happiness! (Temui hari baru, sayang! Saya berjanji untuk mengisinya dengan cinta tanpa syarat, berjam-jam tawa, dan kebahagiaan tanpa akhir!)
  21. Do you know why the sun rises every morning? Just to see your beautiful smile (Tahukah kamu mengapa matahari terbit setiap pagi? Hanya untuk melihat senyum indahmu)
  22. The best feeling in the world is knowing that you are mine, and I am yours. Every morning, that's enough for me to have a great day (Perasaan terbaik di dunia adalah mengetahui bahwa kamu milikku, dan aku milikmu. Setiap pagi, itu cukup bagiku untuk menjalani hari yang menyenangkan)
  23. Only a few things are priceless for me in this world. One of them is seeing your smile every morning (Hanya beberapa hal yang tak ternilai bagi saya di dunia ini. Salah satunya adalah melihat senyummu setiap pagi)
  24. Good morning, sweet face. I feel like you are the reward for everything I’ve done right in my life (Selamat pagi, wajah manis. Saya merasa kamu adalah hadiah untuk semua yang telah saya lakukan dengan benar dalam hidup saya)
  25. Good morning honey, I love you more than words can say. Have a wonderful day! (Selamat pagi sayang, aku mencintaimu lebih dari kata-kata yang bisa diucapkan. Semoga harimu menyenangkan!)
  26. Whatever the morning brings, I hope it leads to an amazing day regardless! Good morning sunshine! (Apa pun yang dibawa pagi, saya harap itu mengarah ke hari yang luar biasa! Selamat pagi matahari!)
  27. Regardless of how today goes, knowing I get to see you later makes it all worth it (Terlepas dari bagaimana hari ini berjalan, mengetahui bahwa saya akan bertemu dengan kamu nanti membuat semuanya berharga)
  28. I went to sleep dreaming of an angel. When I woke up this morning I was thinking of you (Aku pergi tidur memimpikan malaikat. Saat aku bangun pagi ini aku memikirkanmu)
  29. I think of you every morning and dream of you every night (Aku memikirkanmu setiap pagi dan memimpikanmu setiap malam)
  30. Good morning honey! Starting the day with you makes everything feel better (Selamat pagi sayang! Memulai hari denganmu membuat segalanya terasa lebih baik)
  31. Your energy is unmatched, your smile lights up a room. Never forget how special you are. Good morning! (Energimu tak tertandingi, senyumanmu menerangi ruangan. Jangan pernah lupa betapa istimewanya dirimu. Selamat pagi!)
  32. Good morning, sweetie! Thank you so much for being the best part of my life (Selamat pagi sayang! Terima kasih banyak telah menjadi bagian terbaik dalam hidupku)
  33. Just know that you always bring out the best in me. Good morning, sunshine! (Ketahuilah bahwa kamu selalu mengeluarkan yang terbaik dari diri saya. Selamat pagi, matahari!)
  34. Good morning, my love. I still can't understand why I deserve such happiness, but I thank God for you every day (Selamat pagi, sayangku. Saya masih tidak mengerti mengapa saya pantas mendapatkan kebahagiaan seperti itu, tetapi saya berterima kasih kepada Tuhan untuk Anda setiap hari)
  35. You are the rainbow who fills my life with color. Good morning! (Kamu adalah pelangi yang mengisi hidupku dengan warna. Selamat pagi!)

Baca juga: 25 Ucapan Kelahiran Anak

Dapatkan update berita pilihan dan breaking news setiap hari dari Kompas.com. Mari bergabung di Grup Telegram "Kompas.com News Update", caranya klik link , kemudian join. Anda harus install aplikasi Telegram terlebih dulu di ponsel.  

Pilihan Untukmu

`); var wSpecStop = createElementFromHTML(`

Konten disembunyikan.
Muat ulang halaman untuk perbarui rekomendasi.

`); reactionPopup.querySelector('.buttonShare').setAttribute('data-title', item.title); reactionPopup.querySelector('.buttonShare').setAttribute('data-url', itemUrl); reactionPopup.querySelector('.buttonShare').setAttribute('data-campaign', 'AIML_Widget_Desktop'); let userFeedback = new UserFeedback(resultObj.engine['tracker_algsrc'], itemUrl + tracker_params, jxRecHelper, index); reactionPopup.querySelector('.buttonBookmark').addEventListener('click', function() { do_bookmark(itemUrl, index, userFeedback); }); reactionPopup.querySelector('.buttonShare').addEventListener('click', function() { userFeedback.event('share'); }); reactionPopup.querySelector('.buttonNotInterest').addEventListener('click', function() { if (getCookie('kmps_usrid')) { hideThisArt(this); userFeedback.event('not-interested'); } else { const parentAction = this.parentElement.parentElement.parentElement if (!!parentAction) { let indexElement = parentAction.getAttribute('data-index') if (indexElement != 'undefined') { localStorage.setItem('reaction_not_interest_temp', JSON.stringify({ urlpage: items[indexElement].url })) } } window.location.href = "" + btoa(window.location.href); } }); /** * trigger action "userFeedback" that user not interest item before, when not interest without login */ if (getCookie('kmps_usrid') && localStorage.getItem('reaction_not_interest_temp')) { const tempUrlNotInterest = JSON.parse(localStorage.getItem('reaction_not_interest_temp')) if (itemUrl == tempUrlNotInterest.urlpage) { userFeedback.event('not-interested'); localStorage.removeItem('reaction_not_interest_temp'); } } wSpecStop.querySelector('.wSpec-stop-undo').addEventListener('click', function() { showThisArt(this); userFeedback.event('un-not-interested'); }); recItem.appendChild(buttonOption); recItem.appendChild(reactionPopup); recItem.appendChild(wSpecStop); } var recItemWrapperA = createElement('a', null, null, null); recItemWrapperA.setAttribute('href', itemUrl + tracker_params); var titleDiv = createElement('h4', null, null, [cssClasses.title]); var titleTextNode = document.createTextNode(item.title); if (item.itemType == 'video') { var iconVideo = createElement('div', null, null, ['icoInline', 'icoVideo']); iconVideo.style.marginRight = '5px'; titleDiv.appendChild(iconVideo); } titleDiv.appendChild(titleTextNode); var sourceDiv = null; if (item.hasOwnProperty('method')) { sourceDiv = createElement('div', null, null, [cssClasses.source], resultObj.engine['type'] + ' . ' + item.method.toUpperCase()); } else { var sourceDiv = createElement('div', null, null, [cssClasses.source], resultObj.engine['type']); } var textWrapper = createElement('div', null, null, [cssClasses.text_wrapper]); textWrapper.appendChild(categoryDiv); textWrapper.appendChild(titleDiv); textWrapper.appendChild(sourceDiv); recItemWrapper.appendChild(imgWrapper); recItemWrapper.appendChild(textWrapper); recItemWrapperA.appendChild(recItemWrapper); recItem.appendChild(recItemWrapperA); widgetWrapper.appendChild(recItem); // hook up the click handler for this item // recItem.onclick = handleClick.bind(null, jxRecHelper, itemUrl + tracker_params, index); recItemWrapperA.onclick = handleClick.bind(null, jxRecHelper, itemUrl + tracker_params, index); }); } // end while var endDate = new Date(); var loadtime = (endDate.getTime() - startDate.getTime()); trackEventGa('AIML Article Recommendation', 'Content Loaded', 'algsrc='+algsrc+',site=TREN,device=desktop,loadtime=' + loadtime) let domain = window.location.hostname; if(domain=='){ var url=window.location.href.split("/"); domain=url[2]+'/'+url[3] } let user_subs_type = "Gues"; let subs_type = ""; let is_lgn = 0; let engine = algsrc; if(getCookie('kmps_usrid')){is_lgn=1}; let time_load = loadtime; resolve(); /*** * JXRECSDK NOTES 3 of 5 - * pass all the info about the items to the rec helper * each one is an object: ALL MANDATORY * div * id * pos */ jxRecHelper.items(widgetItemArr); /*** * JXRECSDK NOTES 4 of 5 - * Call the ready() of the helper object when the recommendation * results have been populated to the widget * (This will register the action=ready event) */ if (resultObj.engine['type'] == 'api-1') { jxRecHelper.ready(resultObj.options.algo + ":" + resultObj.options.version); } else { jxRecHelper.ready(resultObj.engine['type']); } } else { jxRecHelper.error(204); console.error("Error: no recommendation items"); return; } } catch (err) { jxRecHelper.error(901); console.log(err.stack); let domain = window.location.hostname; if(domain=='){ var url=window.location.href.split("/"); domain=url[2]+'/'+url[3] } let user_subs_type = "Gues"; let subs_type = "" let is_lgn = 0; let engine = algsrc; if(getCookie('kmps_usrid')){is_lgn=1}; let endDate = new Date(); let time_load = (endDate.getTime() - startDate.getTime()); } }); } const _jxRecSdkURL = ' var startDate = new Date(); class OneWidget { constructor() { //this is also the one we will pass to the JX rec helper object when //we instantiate it: //In this implementation most of these come from the options obj //on the publisher page. this._options = { accountid: '9262bf2590d558736cac4fff7978fcb1', pageurl: ' widget_id: '1000183-6xWeiWZFIM', type: 'pages', container: 'rekomendasi-konten-pilihan-untukmu-aiml', keywords: content_tags, title: title, customid: "65", count: 14, }; this._containerId = this._options.container; this._container = document.getElementById(this._containerId); this._engines = [{"url":"https:\/\/recommendation.jixie.media\/v1\/recommendation","method":"GET","pageurl":"https:\/\/","system":"jx","type":"api-1","tracker_params":"?source=widgetML","tracker_algsrc":"V","count":14,"page_status":"read","excludeitemids":"20230429061000565"}]; } kickOff() { startDate = new Date(); const rand = Math.floor(Math.random() * 1000); /*const randSystem = Math.floor(Math.random() * 3); this._engine = this._engines[randSystem] if (location.hostname.indexOf('lestari') != -1) { this._engine = this._engines[1] }*/ this._engine = this._engines[0]; this._options.system = this._engine['system'] trackEventGa('AIML Article Recommendation', 'Widget load', 'algsrc=' + this._engine['tracker_algsrc'] + ',site=TREN,device=desktop') let promJXSDK = fetchJSFileP(_jxRecSdkURL); let thisObj = this; // first we wait on the JX REC SDK to be loaded and initialized let recHelperObj = null; let recResults = null; promJXSDK .then(function() { /*** * JXRECSDK NOTES 1 of 5 - INSTANTIATION OF A JX REC HELPER OBJECT * Call this AFTER JX REC SDK is loaded but BEFORE you call your REC * backend. * * param: MANDATORY options object * options object must at a minimal have * accountid: get from jixie * widgetid: get from jixie * container: DIV ID of the destination div to house the widget * (for jixie widget this is just the options object passed from the page) * * (This will also register the action=load event) */ recHelperObj = jxRecMgr.createJxRecHelper(thisObj._options); let basicInfo = thisObj._options; basicInfo.engine = thisObj._engine if (basicInfo.engine.type == 'api-1') { var options = { count: basicInfo['count'], adpositions: "", keywords: basicInfo['keywords'], title: basicInfo['title'], date_published: "2023-04-29", pagecategory: "TREN", algo: "mixed" }; if(getCookie('kmps_usrid')){ var kg = { pagetype:basicInfo.engine.page_status, uid:getCookie('kmps_usrid'), ukid:getCookie('kmp_uid') } if(basicInfo.engine.page_status=='read'){ kg['excludeitemids'] = basicInfo.engine.excludeitemids; kg['multiFormat'] = true; } options['additional'] = { kg:kg }; } return recHelperObj.getJxRecommendations(options); } else { return fetchRecommendationsP(basicInfo, recHelperObj.getJxUserInfo()); } }) .then(function(resp) { if (thisObj._engine.type == 'api-3') { recResults = new Object recResults.items = resp.docs.result; } else { recResults = resp; } recResults.engine = thisObj._engine; if (!resp || !recResults.items || recResults.items.length == 0) { /*** * JXRECSDK NOTES 2 of 5 - * Call the error() function on the recHelper when either an error * has occured in the fetching or there are no recommended items * * (This will register the action=error event) */ recHelperObj.error(204); throw "no recommendation results"; } }) .then(function() { // everything is ready (recommendation results, css): document.getElementById("rekomendasi-konten-pilihan-untukmu-aiml").classList.remove("-loading"); document.querySelector('.wSpec-list').remove(); createDisplay(rand, thisObj._container, recResults, recHelperObj) .then(function() { toggleDropdown(); //observe lozad lozad('.lozad', { load: function(el) { el.src = el.dataset.src; el.onload = function() { el.classList.add('fade') } } }).observe() }) }) .catch(function(error) { console.log(`Unable to create recommendations widget ${error.stack} ${error.message}`); }); } } var limit_gtm_ready = 1; function check_gtm_ready() { if ('ga' in window) { // create a new instance of our widget based on the options const newW = new OneWidget(); newW.kickOff(); } else { const timeout_gtm_ready = setTimeout(check_gtm_ready, 500) limit_gtm_ready += 1; if (limit_gtm_ready > 10) { clearTimeout(timeout_gtm_ready); const newW = new OneWidget(); newW.kickOff(); } } } check_gtm_ready() document.querySelector('.wSpec-secret').addEventListener('click', function(e) { e.preventDefault(); let wSl = document.querySelectorAll('.wSpec-source'); if (wSl.length > 0) { for (let i = 0; i < wSl.length; i++) { wSl[i].classList.toggle('show') } } }) function trackEventGa(category, action, label) { if ("ga" in window) { ga(function() { tracker = ga.getAll()[0]; if (tracker) { tracker.send("event", category, action, label); console.log('track event ', category, action, label) } }) } } function formBody(obj) { let formBody = []; for (var property in obj) { let encodedKey = encodeURIComponent(property); let encodedValue = encodeURIComponent(obj[property]); formBody.push(encodedKey + "=" + encodedValue); } return formBody.join("&"); } function getCookie(name) { var name = name + '='; var cookies = decodeURIComponent(document.cookie).split(';'); for (var i = 0; i < cookies.length; i++) { var c = cookies[i]; while (c.charAt(0) == ' ') { c = c.substring(1); } if (c.indexOf(name) == 0) { return c.substring(name.length, c.length); } } } function get_guid(url) { const videoPath = url.match(/\/watch\/(\d+)/); if (videoPath) { return `video.${videoPath[1]}`; } let arrayUrl = url.split('/'); let readPath = arrayUrl.indexOf('read'); if (arrayUrl[readPath + 1] == 'xml') { readPath += 1; } let year = arrayUrl[readPath + 1]; let month = arrayUrl[readPath + 2]; let date = arrayUrl[readPath + 3]; let id = arrayUrl[readPath + 4]; let guid = `.xml.${year}.${month}.${date}.${id}`; return guid; } function toggleDropdown() { let tdd = document.querySelectorAll('[data-dropdown]') if (!!tdd) { tdd.forEach((el) => { el.addEventListener('click', function() { el.parentElement.classList.toggle('-active') let saved = el.parentElement.getAttribute('data-saved') let kmps_usrid = getCookie('kmps_usrid'); if (kmps_usrid && !saved && el.parentElement.classList.contains('-active')) { let url = el.parentElement.getAttribute('data-url'); let guid = get_guid(url); check_bookmark( kmps_usrid, guid ).then(function(resp) { if (resp.hasOwnProperty('total_data')) { if (resp.total_data > 0) { el.parentElement.querySelector('.buttonBookmark').classList.add('-active'); el.parentElement.querySelector('.buttonBookmark').innerHTML = 'Hapus dari tersimpan'; el.parentElement.setAttribute('data-saved', 'true'); } else { el.parentElement.setAttribute('data-saved', 'false'); } } }) } }) document.addEventListener("click", function(e) { // console.log(e.target) if (el.contains(e.target)) { // console.log(tdd) } else { el.parentElement.classList.remove('-active') } }); }); } } function check_bookmark(kmps_usrid, guid) { let url = ` return new Promise(function(resolve, reject) { var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { resolve(JSON.parse(this.responseText)) } }; xmlhttp.open("GET", url, true); xmlhttp.send(); }); } function do_bookmark(pageurl, pos, userFeedback) { const wSpecItem = document.querySelector(`.wSpec-item[data-index="${pos}"]`); const btnBookmark = wSpecItem.querySelector('.buttonBookmark'); const kmps_usrid = getCookie('kmps_usrid'); const guid = get_guid(pageurl); const type = pageurl.match(/\/watch\/(\d+)/) ? 'video' : 'article'; if (kmps_usrid) { if (btnBookmark.classList.contains('-active')) { set_unbookmark({ guid: guid, kmps_usrid: kmps_usrid, type: type }).then(function(resp) { btnBookmark.classList.remove('-active'); btnBookmark.innerHTML = 'Simpan artikel'; reactionToast('Artikel berhasil dihapus dari list yang disimpan'); userFeedback.event('un-save'); }).catch(function(resp) { // message: "Data doesn't exists" if (resp.hasOwnProperty('message') && resp.message.includes('exist')) { btnBookmark.classList.remove('-active'); btnBookmark.innerHTML = 'Simpan artikel'; reactionToast('Artikel berhasil dihapus dari list yang disimpan'); } }) } else { const user_bookmark_url = ""; set_bookmark({ guid: guid, kmps_usrid: kmps_usrid, type: type, publisher: 'kompas', platform: 'desktop' }).then(function(resp) { btnBookmark.classList.add('-active'); btnBookmark.innerHTML = 'Hapus dari tersimpan'; reactionToast('Artikel berhasil disimpan', user_bookmark_url); userFeedback.event('save'); }).catch(function(resp) { // message: "Data already exist" if (resp.hasOwnProperty('message') && resp.message.includes('exist')) { btnBookmark.classList.add('-active'); btnBookmark.innerHTML = 'Hapus dari tersimpan'; reactionToast('Artikel berhasil disimpan', user_bookmark_url); } }) } } else { const login_url = "" + btoa(window.location.href); window.location.href = login_url; } } function set_bookmark(data) { const url = ""; return new Promise(function(resolve, reject) { const xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 201) { resolve(JSON.parse(this.responseText)); } else if (this.readyState == 4 && this.status == 400) { reject(JSON.parse(this.responseText)); } }; xmlhttp.open("POST", url, true); xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8"); xmlhttp.send(formBody(data)); }); } function set_unbookmark(data) { const url = ""; return new Promise(function(resolve, reject) { const xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { resolve(JSON.parse(this.responseText)); } else if (this.readyState == 4 && this.status == 400) { reject(JSON.parse(this.responseText)); } }; xmlhttp.open("POST", url, true); xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8"); xmlhttp.send(formBody(data)); }); } class UserFeedback { constructor(engine, pageurl, jxRecHelper, pos) { this.engine = engine; this.pageurl = pageurl; this.jxRecHelper = jxRecHelper; this.pos = pos; } event(feedback) { if (this.engine == 'C') { const xmlhttp = new XMLHttpRequest(); let params = { domain: 'kompas.com', ce_userid: getCookie('kmps_usrid'), ce_sessionid: getCookie('ukid'), ce_pageurl: this.pageurl, engine: 'C', ce_feedback: feedback } xmlhttp.open("GET", ' + formatParams(params)); xmlhttp.send(); } else if (this.engine == 'V') { if (feedback == 'share') { this.jxRecHelper.shared(this.pos); } else if (feedback == 'save') { this.jxRecHelper.bookmarked(this.pos); } else if (feedback == 'not-interested') { this.jxRecHelper.hidden(this.pos); } else if (feedback == 'un-not-interested') { this.jxRecHelper.unhidden(this.pos); } } } } function formatParams(params) { return "?" + Object .keys(params) .map(function(key) { return key + "=" + encodeURIComponent(params[key]) }) .join("&") } document.addEventListener("click", function(e){ let dx = document.querySelectorAll('[data-dropdown]') if(dx) { dx.forEach(function(el){ if(el.contains(e.target)) { el.parentElement.classList.toggle('-active') } else { el.parentElement.classList.remove('-active') } }) } })

You Might Also Like