我想为两个图像制作模态框。模态框正在打开,但无法关闭。
这是我的脚本
...
// When the user clicks anywhere outside of the modal, close it
window.onclick = function (event) {
if (event.target == modal) {
lol.style.display = "none";
}
}
...
修复后的代码http://jsfiddle.net/dncgc42t/4/
问题是你有很多类close
span
,所以你应该循环它们,因为当你使用document.getElmentsByClassName('close')[0]
时,这将始终只返回具有类close
的第一个元素,所以其他元素不会受到影响。
另一方面
对模态使用class
而不是id
会更好。
您使用两个跨度,只有一个跨度被添加到 onclick 事件中,因为您使用 [0] 索引。添加第二个带有 [1] 索引将起作用,但使用 for 循环会更好。
另请注意,您可能可以创建单个模式窗口类。一次只能看到一个。
在带有 for 循环的工作版本下方
var i;
for( i=0; i<span.length; i++)
{
span[i].onclick = function() {
box.style.display = "none";
lol.style.display = "none";
}
}
新的JSFiddle,点击这里