当用户点击页面中的任何位置而不是div时,我想要隐藏div。
<head>
<script type="text/javascript" src="jquery-1.8.3.js"></script>
<script type="text/javascript">
$(function () {
$(document).not('.me').click(function () {
$('.me').hide()
})
})
</script>
</head>
<body>
<div class="me" style="width:200px; height:200px; background:#F00">
test
</div>
</body>
答案 0 :(得分:2)
$(document).click(function (e)
{
var container = $(".me");
if (container.has(e.target).length === 0)
{
container.hide();
}
});
答案 1 :(得分:2)
您可以将点击事件添加到body
或html
元素,以及阻止点击事件在div
元素上传播:
$(function () {
//bye bye lovely div :)
$('html, body').click(function(){
$('.me').hide();
});
//let's avoid the click propagation to the body or html
$('.me').click(function(e){
e.stopPropagation();
});
});
答案 2 :(得分:2)
您可以使用stopPropagation()
:
$(function(){
$(document).click(function(){
$(".me").hide();
});
$(".me").click(function(e){
e.stopPropagation();
});
});
选中此jsFiddle
答案 3 :(得分:1)
您可以使用以下脚本来实现此目的。
<script type="text/javascript">
$(document).click(function (event) {
var target = $(event.target);
if (!target.parents().andSelf().is('.me')) {
$(".me").hide();
}
});
</script>
上面的语法是检查父项是否不是div(here it's me
),而不是仅隐藏div。
快乐编码:)
答案 4 :(得分:0)
$(function(){
$(document).click(function(){
$('.me').hide()
})
$('.me').click(function(){
return false;
})
})