最近的项目中有这么一个需求,点击一排图片中的任意一张后底部弹出一个对话框,要求点击任意地方隐藏对话框
这个时候用not()显然是不现实的,用closest()可以实现差不多的功能
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>选择指定元素外的其他所有元素</title>
<style>
*{
margin: 0;
padding: 0;
}
.box{
border: 1px solid red;
overflow: hidden;
}
.box > div{
height: 100px;
width: 100px;
background-color: cadetblue;
float: left;
margin-left: 10px;
}
.box > div > div{
height: 50px;
width: 50px;
background-color: coral;
}
</style>
</head>
<body>
<div class="box">
<div class="num1">
<div></div>
</div>
<div class="num2">
<div></div>
</div>
<div class="num3">
<div></div>
</div>
</div>
<script type="text/javascript" src="js/jquery-1.11.0.js" ></script>
<script>
$(document).click(function(e){
if( $(e.target).closest('.num2').length == 0 ){
alert("事件触发");
}
});
</script>
</body>
</html>
关键知识点:jquery closest()
closest():在DOM树中从当前元素开始向上寻找(包括当前元素),并用匹配元素构建一个新的jquery对象
参考:http://www.w3school.com.cn/jquery/traversing_closest.asp