Javascript Jquery&x27;不要隐藏一个元素

Javascript Jquery&x27;不要隐藏一个元素,javascript,jquery,html,css,Javascript,Jquery,Html,Css,以前做过几次,但这次有点不对劲。正在尝试创建弹出窗口。正如你所猜测的,最初,它是隐藏的。它确实会在单击时显示,但当我尝试关闭它时,什么也没有发生。另外,当我尝试在开发人员工具中将样式更改为display:none时,它会切换回display:block。目前它位于页面的标题部分,但我也尝试将其放置在最底部 它的html <div class="tablecell midlineunit popup-hml middle"> <div class="hml-popup-b

以前做过几次,但这次有点不对劲。正在尝试创建弹出窗口。正如你所猜测的,最初,它是隐藏的。它确实会在单击时显示,但当我尝试关闭它时,什么也没有发生。另外,当我尝试在开发人员工具中将样式更改为display:none时,它会切换回display:block。目前它位于页面的标题部分,但我也尝试将其放置在最底部

它的html

<div class="tablecell midlineunit popup-hml middle">
    <div class="hml-popup-bg popupbg ">
        <div class="hml-popup-cnt">
            <div class="closepopup">X</div>
        </div>
    </div>
</div>

当然。hml弹出窗口bg隐藏在css中,您可以使用它。。不需要。each()只需使用。单击(),您就可以使用最接近的()

$(".popup-hml").click(function(){
    $(this).find(".hml-popup-bg").show();
});

$(".closepopup").click(function(e){
    e.stopPropagation();
    $(this).closest('.hml-popup-bg').hide();
});

您对jQuery的.each()的使用似乎有误。我认为,您真正想要设置的是两个事件侦听器—一个在单击按钮时打开弹出窗口,另一个在单击“X”时关闭弹出窗口

您可以通过以下jQuery来实现这一点:

$(document).on("click", ".popup-hml", function(){
    $(".hml-popup-bg").show();
});
$(document).on("click", ".closepopup", function(){
    $('.hml-popup-bg').hide();
});

这应该行得通。这是因为你关闭了它,但没有停止传播,所以它通过冒泡再次被打开

$(".popup-hml").each(function(){
     $(this).click(function(){
         $(this).find(".hml-popup-bg").show();
     });
});
$(".closepopup").each(function(){
    $(this).click(function(e){
        e.stopPropagation();
        $(this).parent().parent().hide();
    });
});

你为什么不
.find(“.hml popup bg”).hide()
而不是依赖父母的数量?
$(.closepopup”).each(function(){$(this)。单击(function(){
这让我在里面死了一点。@Derek朕會功夫 别忘了第一个是这样的too@Daemedeor无论如何,关键是这段代码写得太糟糕了。
$(this)。find(“.hml pop bg”)
我相信你可以只做
$(“.html pop bg”,this)
来节省一些打字时间。:)仍然不起作用。再一次,出于某种原因,即使在开发人员工具中,我也无法更改显示style@ViciA确保仅在加载文档时运行它。@Derek朕會功夫 你是对的。但我以前确实不习惯用这种方式。我想我必须发展一下自己:)我在加载文档时使用它。再一次,它会在单击时显示弹出窗口。它只是不会隐藏它。我尝试过不同的方法,如添加和删除类、隐藏/显示、css('display'、'none/block')).我可以打开弹出窗口,但不能隐藏e.stopPropagation()的itup+1;…你完全正确
$(".popup-hml").each(function(){
     $(this).click(function(){
         $(this).find(".hml-popup-bg").show();
     });
});
$(".closepopup").each(function(){
    $(this).click(function(e){
        e.stopPropagation();
        $(this).parent().parent().hide();
    });
});