jQuery实现鼠标点击Div区域外隐藏Div

Posted Web前端架构

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jQuery实现鼠标点击Div区域外隐藏Div相关的知识,希望对你有一定的参考价值。

 

冒泡定义:当一个元素上的事件被触发的时候,比如说鼠标点击了一个按钮,同样的事件将会在那个元素的所有祖先元素中被触发。这一过程被称为事件冒泡;这个事件从原始元素开始一直冒泡到DOM树的最上层。(摘自网络)

 

1. 阻止事件冒泡, 并不阻止事件行为:event.stopPropagation();

$(function() {
	$("#link").click(function(event) {
		event.stopPropagation();
	});
});

2. 阻止事件行为,并阻止事件冒泡 :event.preventDefault();

$(function() {
	$("#link").click(function(event) {
		event.preventDefault(); 
	});
});

3. 阻止事件冒泡, 也阻止事件行为:return false;

$(function() {
	$("#link").click(function(event) {
		return false;
	});
})



阻止事件冒泡:
$("#btn").click(function (event) { 
	$("#demo").fadeIn(); 
	$(document).one("click", function () {//对document绑定一个影藏Div方法 
		$("#demo").hide(); 
	});
	event.stopPropagation();//点击Button阻止事件冒泡到document 
}); 
$("#demo").click(function (event) { 
	event.stopPropagation();//在Div区域内的点击事件阻止冒泡到document 
}); 
 

例子:

 
<p><a href="javascript:void(0)" class="a">菜单按钮</a></p>
<div class="menu">
<a href="http://www.baidu.com">百度</a>
</div>


$(".a").on("click", function(e){
    if($(".menu").is(":hidden")){
        $(".menu").show();
    }else{
        $(".menu").hide();
    }

    $(document).one("click", function(){
        $(".menu").hide();
    });

    e.stopPropagation();
});
$(".menu").on("click", function(e){
    e.stopPropagation();
});

以上是关于jQuery实现鼠标点击Div区域外隐藏Div的主要内容,如果未能解决你的问题,请参考以下文章

如何在鼠标点击div区域外执行函数

[转]JQuery控制div外点击隐藏,div内点击不会隐藏

鼠标经过弹出div

jQuery实现点击div外的区域,来隐藏指定节点

求用jquery点击空白处隐藏div的方法,寻找最简单的方法

一个弹出div,当点击页面上除了这个div这外的地方,隐藏这个div,jquery怎么写??