我已经采取了一个工作脚本,并将其调整为允许多个独立模态,并且我不再能够关闭任何模态。我收到错误:莫代尔'关闭'不工作
Cannot set property 'display' of undefined at HTMLSpanElement.span.onclick
window.onclick或document.onclick函数都不起作用。 Here's the jsfiddle
<div class="contentSection">
<a class="popupBtn" data-modal="modal-window-one">Open Me!</a>
</div>
<div id="modal-window-one" class="popupModal modal">
<span class="close">×</span>
<div class="modalContent">
<p>Here's some content!</p>
</div>
</div>
<div class="contentSection">
<a class="popupBtn" data-modal="modal-window-two">...Or Open Me!</a>
</div>
<div id="modal-window-two" class="popupModal modal">
<span class="close">×</span>
<div class="modalContent">
<p>Here's some different content!</p>
</div>
</div>
var modal = document.getElementsByClassName('popupModal');
var btn = document.getElementsByClassName("popupBtn");
var span = document.getElementsByClassName("close")[0];
for (var i = 0; i < btn.length; i++) {
var thisBtn = btn[i];
thisBtn.addEventListener("click", function(){
var modal = document.getElementById(this.dataset.modal);
modal.style.display = "block";
}, false);
}
span.onclick = function() {
modal.style.display = "none";
}
window.onclick = function(event) {
if (event.target == modal) {
modal.style.display = "none";
}
}
可能重复[隐藏模式在Twitter Bootstrap点击时](https://stackoverflow.com/questions/17163476/hide-modal-in-twitter-bootstrap-when-clicked) –
@ C.Lightfoot这是Bootstrap模式,这是一个自定义的。 – yuriy636