冒泡情况

冒泡事件:是当一个div设置一个点击事件,这个点击事件会传递给它的父级,然后依次传递下去,也就是说,当div嵌套一个div,两个div上都有点击事件,当里边的div点击事件触发,两个点击事件都会触发,这种情况会带来问题。可以用cancelBubble=true;解决

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>冒泡</title>
<style>
#div1{width:300px; height:300px; background:#999; display:none;}
</style>
<script>
window.onload=function()
{
	var oBtn=document.getElementById(‘btn1‘);
	var oDiv=document.getElementById(‘div1‘);

	oBtn.onclick=function(ev)
	{
		var oEvent=ev||event;//解决兼容问题
		oDiv.style.display=‘block‘;//当点击按钮是oDiv显示
		oDiv.onclick=function(ev)
		{
			oEvent=ev||event;
			oEvent.cancelBubble=true;//当oDiv显示后,关闭oDiv的冒泡,点击oDiv,不会隐藏
		}
		oEvent.cancelBubble=true;//关闭按钮中的冒泡
	}
	document.onclick=function()//当按其他空白区域,oDiv消失
	{
		oDiv.style.display=‘none‘;
	}
}
</script>
</head>

<body>
<input id="btn1" type="button"  value="显示"/>
<div id="div1"></div>
</body>
</html>
时间: 2024-10-31 03:01:50

冒泡情况的相关文章

事件支持冒泡情况

Event Type Bubbling phase abort ? beforeinput ? blur ? click ? compositionstart ? compositionupdate ? compositionend ? dblclick ? error ? focus ? focusin ? focusout ? input ? keydown ? keyup ? load ? mousedown ? mouseenter ? mouseleave ? mousemove ?

鼠标拖动改变DIV等网页元素的大小的最佳实践

1.初次实现 1.1 html代码 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>div change

对于jq里的Event对象的方法一些理解

这些是我从jq手册的Event对象一篇里获取的理解 event.currentTarget  在事件冒泡阶段中的当前DOM元素 例子: $("p").click(function(event) { alert( event.currentTarget === this ); // true }); 概述:相当于this(DOM的) event.data 当前执行的处理器被绑定的时候,包含可选的数据传递给jQuery.fn.bind. 例子: $("a").each(

javascript事件详解笔记

javascript事件详解笔记: 一.事件流 1.事件流: 描述的是页面中接受事件的顺序,有事件冒泡.事件捕获两种. 2.事件冒泡: 由最具体的元素接收,然后逐级向上传播到最不具体的元素的节点(文档). 3.事件捕获: 最不具体的节点先接收事件,而最具体的节点应该是最后接收事件. <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>事件</title&

JQuery阻止冒泡事件on绑定中异常情况分析

科普下事件冒泡以及默认行为,以下面例子举列子: 事件冒泡:当点击内部button元素时,会触发自身及外层 a的点击事件,这就是事件冒泡引起的.事件会随着 DOM 的层次结构依次向上传播. 事件冒泡可能会引起意料之外的效果,有时候需要阻止事件的冒泡行为. 默认行为:例子中a的href跳转链接就是所谓的默认行为,或者是表单form的提交. JQuery中阻止冒泡常用到的有以下3个方法: 1:event.stopPropagation();  只阻止了冒泡事件, 默认行为没有阻止 2:event.pr

冒泡法的算法最佳情况下的时间复杂度为什么是O(n)

我在许多书本上看到冒泡排序的最佳时间复杂度是O(n),即是在序列本来就是正序的情况下. 但我一直不明白这是怎么算出来的,因此通过阅读<算法导论-第2版>的2.2节,使用对插入排序最佳时间复杂度推算的方法,来计算冒泡排序的复杂度. 1. <算法导论>2.2中对插入排序最佳时间复杂度的推算 在最好情况下,6和7总不被执行,5每次只被执行1次.因此, 时间复杂度为O(n) 2. 冒泡排序的时间复杂度 2.1 排序代码 public void bubbleSort(int arr[]) {

day6 反射,hashlib模块,正则匹配,冒泡,选择,插入排序

一.反射(自省) 首先通过一个例子来看一下本文中可能用到的对象和相关概念. import sys # 模块,sys指向这个模块对象import inspectdef foo(): pass # 函数,foo指向这个函数对象 class Cat(object): # 类,Cat指向这个类对象 def __init__(self, name='kitty'): self.name = name def sayHi(self): # 实例方法,sayHi指向这个方法对象,使用类或实例.sayHi访问

8. 冒泡法排序和快速排序(基于openCV)

一.前言 主要讲述冒泡法排序和快速排序的基本流程,并给出代码实现,亲测可用. 二.冒泡法排序 冒泡法排序主要是将相邻两个值比较,把小的向前冒泡,大的向后沉淀,时间复杂度为O(n2).主要思想如下: 分为内外循环,每次外循环确定一个大的数据的具体位置,如下实例: 从图中可以看出,进过两次外循环就可以得到排序结果,随后的8次循环都浪费了,为了避免这种情况,我们可以设置一个状态参数,用来表示内循环是否发生数据的交换,从而作为外循环是否退出的信号. 三.快速排序 快速排序是最有效的排序方法之一,其主要思

jquery阻止事件冒泡

以点击事件为例 <li class="hsub"> <a href="#"class="ajaxPage" class="dropdown-toggle"> 网站管理 </a> </li> li 与a元素都有点击事件,在默认情况下点击a标签则同样会触发li的点击事件,如需避免此情况只需在a的点击事件中阻止事件冒泡就行了 $("a.ajaxPage").clic