第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 Javascript 外部單擊時關(guān)閉模式

如何在 Javascript 外部單擊時關(guān)閉模式

千巷貓影 2023-10-14 19:15:51
我試圖在外部單擊時關(guān)閉模式。我嘗試循環(huán)瀏覽模態(tài),但無法讓它們將其顯示設(shè)置為無。這是我的 HTML:<div class="projects">            <div data-modal="modal1">                <div>                      <p>Coffee</p>                </div>                <img src="img/coffee.png" alt="">            </div>            <div data-modal="modal2">                <div>                       <p>Tea</p>                </div>                <img src="img/tea.png" alt="">            </div>      </div><div class="project-card" id="modal1">            <button class="close">X</button>        <div class="overlay">            <img src="img/coffee.png" alt="">        </div></div>        <div class="project-card" id="modal2">            <button class="close">X</button>        <div class="overlay">            <img src="img/tea.png" alt="">        </div></div>這是我打開模式的代碼。const coffeeGrounds = document.querySelectorAll('.projects > div[data-modal^=modal]');for (var i = 0; i < coffeeGrounds.length; i++) {    coffeeGrounds[i].addEventListener('click', function () {        var x = this.getAttribute('data-modal');        var a = document.getElementById(x);        a.setAttribute('style','display:block');           });}這是我的代碼,當(dāng)在外部單擊以關(guān)閉模式時:window.addEventListener('click',function(){       for(var i = 0; i<coffeeGrounds.length; i++){         var x = coffeeGrounds[i].getAttribute('data-modal');             var a = document.getElementById(x);                console.log(a);                if(a.style.display === 'block'){                      a.setAttribute('style','display:none');                 }             }        });在這里將模態(tài)顯示設(shè)置為無。它也阻止顯示模式。請?zhí)峁┤魏螏椭?,我們將不勝感激。代碼筆: https: //codepen.io/zaidik/pen/bGwpzbE
查看完整描述

2 回答

?
慕俠2389804

TA貢獻(xiàn)1719條經(jīng)驗 獲得超6個贊

當(dāng)您在模態(tài)窗口外部單擊時,事件傳播數(shù)組中不應(yīng)包含模態(tài)窗口


換句話說,利用 event.path 屬性


工作示例(基于提供的小提琴)


  window.addEventListener('click', function(e) {

  const allModals = document.querySelectorAll('.project-card');

  if (!e.path.some(x => x.className && x.className.includes('project-card'))) {

    allModals.forEach(x => x.style.display = 'none');

  }

}, true)

工作小提琴示例: https: //jsfiddle.net/7pzs1042/


查看完整回答
反對 回復(fù) 2023-10-14
?
撒科打諢

TA貢獻(xiàn)1934條經(jīng)驗 獲得超2個贊

window.addEventListener('click', function(e) {

? const allModals = document.querySelectorAll('.project-card');

??

//e.path is deprecated

// use instead e.composedPath() like this:?

? let paths = e.composedPath()

if (!paths.some(x => x.className && x.className.includes('project-card'))) {

? ? allModals.forEach(x => x.style.display = 'none');

? }

}, true)


查看完整回答
反對 回復(fù) 2023-10-14
  • 2 回答
  • 0 關(guān)注
  • 144 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號