【发布时间】:2016-07-14 06:31:57
【问题描述】:
我希望能够在单击链接时显示和隐藏某个 div,但我的代码仅在我使用按钮时才有效。为什么会发生这种情况,我该如何解决?
这是我的代码:
.popup {
position: relative;
display: inline-block;
}
.popup-content {
display: none;
position: absolute;
width: 1000px;
}
.show {
display:block;
}
<div class="popup">
<button onclick="showPopup()" class="btnPopup thePopup">POPUP FROM BUTTON</button>
<a class="linkStyle thePopup" onclick="javascript:showPopup()" href="#" return false;>POPUP FROM LINK</a>
<div id="myPopup" class="popup-content" style="border:1px; border-style:solid; margin:10px; padding: 10px;width:200px;">
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Voluptatibus quasi voluptas impedit. Culpa impedit?
</div>
</div>
<script>
/* When the user clicks on the button,
toggle between hiding and showing the dropdown content */
function showPopup() {
event.preventDefault();
document.getElementById("myPopup").classList.toggle("show");
return false;
}
// Close the dropdown if the user clicks outside of it
window.onclick = function(event) {
if (!event.target.matches('.thePopup')) {
var dropdowns = document.getElementsByClassName("popup-content");
var i;
for (i = 0; i < dropdowns.length; i++) {
var openDropdown = dropdowns[i];
if (openDropdown.classList.contains('show')) {
openDropdown.classList.remove('show');
}
}
}
}
</script>
这里也是codepen的链接: http://codepen.io/ZlatinaNyagolova/pen/LkOgzk
更新:
我向按钮和链接添加了另一个类,并在我的关闭函数中的侦听器中使用了该类。这解决了它! :)
【问题讨论】:
标签: javascript html css button toggle