龙空技术网

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

笑哥评天下 741

前言:

此时各位老铁们对“jquery如何显示隐藏元素”大概比较着重,你们都需要知道一些“jquery如何显示隐藏元素”的相关资讯。那么小编也在网上搜集了一些关于“jquery如何显示隐藏元素””的相关资讯,希望大家能喜欢,小伙伴们快快来了解一下吧!

[

][1]

jQuery本身没有这样一个事件,要实现这个效果,我们首先要先了解javascript中的事件冒泡。

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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "">  Click

上述代码运行后,点击链接,以此会出现link, inner, outer, document,转向百度。

也就是说我们点击链接后 click事件一直冒泡传递在最外层body。

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

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

上述代码运行后,点击链接,按顺序会出现link, 转向百度。

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

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

上述代码运行后,点击链接,按顺序会出现link, inner, outer, document, 但是不转向百度。

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

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

上述代码运行后,点击链接,只会出现link。

因此我们可以看出事件冒泡不一定是个坏的东西,有些情况会让不同层次捕获不同的事件!

所以鼠标点击Div区域外隐藏Div正需要用到事件冒泡。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "">This is a div.This is a demo.</pre>在jquery click事件上设置click事件: 首先在document上添加一个点击隐藏Div的事件 然后分别在点击button和div的时候防止冒泡到document$("#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}); [1]: 

标签: #jquery如何显示隐藏元素