【发布时间】:2018-04-05 13:22:47
【问题描述】:
我是 Javascript 新手,除了单击 span 之外,我还想通过按 esc 键来关闭此模式。怎么写?
var modal = document.getElementById('myModal');
var img = document.getElementById('myImg');
var img2 = document.getElementById('myImg2');
var img3 = document.getElementById('myImg3');
var img4 = document.getElementById('myImg4');
var modalImg1 = document.getElementById("img01");
var captionText = document.getElementById("caption");
img.onclick = function()
{
modal.style.display = "block";
modalImg1.src = this.src;
captionText.innerHTML = this.alt;
}
img2.onclick = function()
{
modal.style.display = "block";
modalImg1.src = this.src;
captionText.innerHTML = this.alt;
}
img3.onclick = function()
{
modal.style.display = "block";
modalImg1.src = this.src;
captionText.innerHTML = this.alt;
}
img4.onclick = function()
{
modal.style.display = "block";
modalImg1.src = this.src;
captionText.innerHTML = this.alt;
}
var span = document.getElementsByClassName("close")[0];
span.onclick = function()
{
modal.style.display = "none";
}
我正在考虑在该跨度之后添加:
window.onkeypress = function (event)
{
if (event.keyCode == 27 && modal.style.display='block')
{
modal.style.display='none';
}
}
但老实说不知道那里出了什么问题
感谢您的帮助。
【问题讨论】:
-
您需要在
display = 'block'中使用两个等号,否则您分配一个值而不是比较它们...例如if (event.keyCode == 27 && modal.style.display == 'block') -
什么都没有发生 :( 我的意思是现在 modal 可以工作了,但是不能通过按 esc 来关闭它...编辑:感谢您的快速回复。
标签: javascript html modal-dialog solution