【发布时间】:2018-11-28 17:51:37
【问题描述】:
我对 JS 非常陌生,正在努力重构以下代码。它按预期运行并打开和关闭模态窗口,但至少可以说并不是特别干...
// Open modal windows
document.querySelector('#modal-btn1').addEventListener('click',
function() {
document.querySelector('.modal1').style.display = 'block';
document.querySelector('body').style.overflow = 'hidden';
});
document.querySelector('#modal-btn2').addEventListener('click',
function() {
document.querySelector('.modal2').style.display = 'block';
document.querySelector('body').style.overflow = 'hidden';
});
document.querySelector('#modal-btn3').addEventListener('click',
function() {
document.querySelector('.modal3').style.display = 'block';
document.querySelector('body').style.overflow = 'hidden';
});
document.querySelector('#modal-btn4').addEventListener('click',
function() {
document.querySelector('.modal4').style.display = 'block';
document.querySelector('body').style.overflow = 'hidden';
});
// Close modal windows
document.querySelector('.close-box1').addEventListener('click',
function () {
document.querySelector('.modal1').style.display = 'none';
document.querySelector('body').style.overflow = 'visible';
});
document.querySelector('.close-box2').addEventListener('click',
function () {
document.querySelector('.modal2').style.display = 'none';
document.querySelector('body').style.overflow = 'visible';
});
document.querySelector('.close-box3').addEventListener('click',
function () {
document.querySelector('.modal3').style.display = 'none';
document.querySelector('body').style.overflow = 'visible';
});
document.querySelector('.close-box4').addEventListener('click',
function () {
document.querySelector('.modal4').style.display = 'none';
document.querySelector('body').style.overflow = 'visible';
});
任何正确方向的指针将不胜感激。
【问题讨论】:
-
使用类和自定义属性!
-
您可以编写一个函数来接收模态编号(看起来这就是您所需要的)并添加事件侦听器。
-
感谢所有非常有用的建议 :)
标签: javascript dom event-handling dom-events