我正在使用个人项目的ajax和JQuery页面上加载元素。但是,将某些元素添加到DOM后,不可能在非常特殊的情况下显示它们。
当用户单击另一个用ajax加载的元素时,需要显示一些用ajax加载的html。
示例:
<!-- Element load with ajax and append to DOM -->
<div class="block1">
<p>You have clicked</p>
</div>
<div class="block2">
<p>Some Text</p>
</div>
我将.block1
的css设置为display: none;
,并且我希望单击.block2
后css变为display: flex
的{{1}}。
所以我已经用JQuery实现了这个功能:
.block1
我的麻烦是:
默认情况下,将$(".block2").click(function () {
if ($(".block1").css("display") === "none") {
$(".block1").css("display", "flex");
} else {
$(".block1").css("display", "none");
}
});
设置为.block1
时,该功能可以正常工作(单击display: flex
使.block2
消失,再次单击使{{ 1}})。
在.block1
上默认设置.block1
时,此功能不起作用。但是该功能可以正确检测到(我已经设置了一些.block1
消息,并且css也正在更新)。
有关信息:
所以我的问题是:
为什么当css默认为display: none
时,此方法不起作用,而当css默认为console.log()
时,效果很好。以及我该如何解决?
答案 0 :(得分:1)
替换$(“。block2”)。单击b
$(document).on('click', '.block2', function(){
if ($(".block1").css("display") === "none") {
$(".block1").css("display", "flex");
} else {
$(".block1").css("display", "none");
}
}
)