Ich habe ein funktionierendes Skript genommen und es angepasst, um mehrere unabhängige Modale zu ermöglichen und ich bin nicht mehr in der Lage, irgendwelche Modale zu schließen. Ich erhalte den Fehler:Modal 'close' funktioniert nicht
Cannot set property 'display' of undefined at HTMLSpanElement.span.onclick
Weder die Funktionen window.onclick oder document.onclick funktionieren. 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";
}
}
Mögliches Duplikat von [Modal in Twitter Bootstrap ausblenden, wenn angeklickt] (https://stackoverflow.com/questions/17163476/hide-modal-in-twitter-bootstrap-when-clicked) –
@ C.Lightfoot das ist Bootstrap Modal, dies ist eine benutzerdefinierte. – yuriy636