我先前曾问过一个问题,即在尝试按this questions's answer by Jason Striegel中给出的背景叠加后,当用户单击框外的任何位置时如何使框关闭。但是它没有用,没有引起太多关注。我现在正尝试从亚伦·雷(Aaron Ray)给出的另一个答案中解决问题。他建议
checkExternalClick。我已经设置好了,但是现在只要我单击框内的任何地方,而不是外部的任何地方,框都会关闭!

JS:

$(document).ready(function(){
    initHUDWindow();
});

function initHUDWindow()
{
    $(document).mousedown(checkExternalClick);
}

function checkExternalClick(event)
{
   var target = $(event.target);
   if(target[0].id != "box")
   {
      hideBox();
   }
}

function hideBox()
{
   $(".BoxContainer").hide();
}


CSS:

.Box
{
position:absolute;
top:15%;
left:15%;
width:500px;
height:600px;
background-repeat:no-repeat;
z-index:2;
}


.BoxContainer
{
background-image:url('images/box.png');
z-index:2;
}


HTML:

<div id = "box">
   <div class = "Box BoxContainer"></div>
</div>


如我所说,当用户在框内单击时,这将关闭框。可是等等!我以为如果他们在外面单击,应该关闭盒子吗?

最佳答案

尝试这个

$(document).ready(function(){
    initHUDWindow();

    $("#box").click(function(e){
        e.stopPropagation();
    });

});

function initHUDWindow()
{
    $(document).click(checkExternalClick);
}

function checkExternalClick(event)
{
   hideBox();
}

function hideBox()
{
   $(".BoxContainer").hide();
}

关于javascript - checkExternalClick与我想要的相反吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6863627/

10-12 18:34