我先前曾问过一个问题,即在尝试按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/