为什么元素 display 属性 没有被重新定义?
Why isn't the element display property being redefined?
问题是 div 元素 class layer 被添加到 DOM,但没有显示,无论如何,我已经将显示 属性 设置为 flex
到 class layer
$("#elem").click(function(e) {
if (e.target.classList.contains("myClass")) {
$("*").hide();
$("body").prepend(`<div class="layer">Hey!</div>`);
}
});
.layer {
display: flex;
justify-content: center;
align-items: center;
background: rgb(55, 55, 55);
height: 100vh;
width: 100%;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<div id="elem" class="myClass">click me</div>
你的问题是
$("*").hide();
如果将其更改为
$("body *").hide();
或
$("#elem").hide();
它应该可以解决您的问题
问题
您正在使用 *
作为选择器。
- selector selects all elements in the document, including html, head and body
解决方案
将$("*").hide()
替换为$("#elem").hide()
问题是 div 元素 class layer 被添加到 DOM,但没有显示,无论如何,我已经将显示 属性 设置为 flex
到 class layer
$("#elem").click(function(e) {
if (e.target.classList.contains("myClass")) {
$("*").hide();
$("body").prepend(`<div class="layer">Hey!</div>`);
}
});
.layer {
display: flex;
justify-content: center;
align-items: center;
background: rgb(55, 55, 55);
height: 100vh;
width: 100%;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<div id="elem" class="myClass">click me</div>
你的问题是
$("*").hide();
如果将其更改为
$("body *").hide();
或
$("#elem").hide();
它应该可以解决您的问题
问题
您正在使用 *
作为选择器。
- selector selects all elements in the document, including html, head and body
解决方案
将$("*").hide()
替换为$("#elem").hide()