先上结论: 他们是描述事件触发时序问题的术语。事件捕获指的是从document到触发事件的那个节点,即自上而下的去触发事件。相反的,事件冒泡是自下而上的去触发事件。...绑定事件方法的第三个参数,就是控制事件触发顺序是否为事件捕获。true,事件捕获;false,事件冒泡。默认false,即事件冒泡。...,"+this.id) }) 结果: child事件被触发,child parent事件被触发,parent 结论:先child,然后parent。...事件的触发顺序自内向外,这就是事件冒泡。...事件触发顺序变更为自外向内,这就是事件捕获。 方法: 阻止事件冒泡 和默认行为。 事件冒泡: ? 阻止默认行为: ?
页面加载事件(onload),鼠标双击事件(ondbclick) window.onload=function(){ //绑定元素,执行对应事件 鼠标双击(ondblclick...(){ alert('我是双击显示的'); } } 鼠标摁下(onmousedown)事件(摁下就执行,鼠标无需抬起...} } 鼠标抬起(onmouseup)事件(摁下后,鼠标回弹才执行) window.onload=function(){ ...鼠标移入(onmouseover)事件 window.onload=function(){ //绑定元素,执行鼠标移入事件 鼠标移入(onmousemove...)区别:移动事件指鼠标只要移动就产生事件,移入事件需要移入到指定的对象内才执行事件
今天遇到一个非常奇怪而又搞笑的事情:给一个a标签添加一个鼠标移动上时给一个事件,我给其添加的是一个onMouseMove事件,结果在IE6 7 8 9和GOOLE中都很正常,结果在Firox中出现问题了...这是我遇到的第一个在firox中的兼容性问题,开始让我很苦恼,不知道什么原因,结果仔细查找,就是onMouseMove事件在日怪。当我给提添加onMouseOver事件时就对了。...鼠标的一些事件如下所示: onMouseOver IE3|N2|O3 当鼠标移动到某对象范围的上方时触发的事件 onMouseMove IE4|N4|O 鼠标移动时触发的事件 onMouseOut IE4...|N3|O3 当鼠标离开某对象范围时触发的事件 onKeyPress IE4|N4|O 当键盘上的某个键被按下并且释放时触发的事件....[注意:页面内必须有被聚焦的对象] onKeyDown IE4|N4|O 当键盘上某个按键被按下时触发的事件[注意:页面内必须有被聚焦的对象] onKeyUp IE4|N4|O 当键盘上某个按键被按放开时触发的事件
事件冒泡: 事件冒泡由IE团队提出来的,即事件开始由最具体的元素(文档中嵌套层次最深的那个节点)接收,然后逐级向上传播。...IE9,chrome,Firefox,Opera,Safari都支持事件冒泡,并将事件冒泡到window对象。 如下,点击obj3,依次弹出obj3、world、hello。...: 方式一:event.stopPropagation(); 方式二:return false; return false 不仅阻止了事件往上冒泡,而且阻止了事件本身。...event.stopPropagation() 则只阻止事件往上冒泡,不阻止事件本身。...事件捕获: 事件捕获是由Netscape Communicator团队提出来的,是先由最上一级的节点先接收事件,然后向下传播到具体的节点。
当监听鼠标事件时,会触发一些事件,我们可以与之交互: mousedown 按下鼠标按钮触发 mouseup 鼠标按钮被释放 click 点击事件 dblclick 双击事件 mousemove 当鼠标移动到元素上时...mouseleave 当鼠标移出一个元素时,mouseleave。类似于mouseout但不冒泡。 contextmenu 快捷菜单当快捷菜单打开时,例如用鼠标右键点击 事件重叠。...例如,在鼠标事件中,我们可以通过检查事件对象的button属性来检查哪个鼠标按钮被按下: const link = document.getElementById('my-link') link.addEventListener...button 如果有按钮,则为鼠标事件触发时按下的按钮数目(通常为0 =主按钮,1 =中按钮,2 =右按钮)。处理由单击按钮引起的事件(例如单击)。...buttons 按钮(如果有),表示在任何鼠标事件上按下的按钮的数字。 clientX / clientY 无论是否滚动,鼠标指针相对于浏览器窗口的x和y坐标。
事件机制 ---- 事件触发三个阶段: window往事件触发处传播,遇到注册的捕获事件会触发 传播到事件触发处时触发注册的事件 从事件触发处往window传播,遇到注册的冒泡事件会触发 事件触发一般会按照...event model |------------------------------------------- 但是有一个特例:如果给body中的子节点同时注册冒泡和捕获事件...'}, true) 当点击innner元素时,如下元素发生了: 点击事件开始于捕获阶段,在此阶段浏览器会在所有祖先元素上查找点击事件处理函数(从document开始) 结果找到了2个,分别在document...和outer上面,而且这两个事件处理函数的useCapture选项为true,说明他们被注册在捕获阶段的。...于是,document和outer的点击处理函数被执行 继续向下寻找,直到到达inner元素本身,捕获阶段就此结束。
def giveHelp(self): self.text = "请点击这里触发追踪鼠标功能" self.update() # 重绘事件,也就是触发paintEvent函数。...QSize({0}, {1})".format( event.size().width(), event.size().height()) self.update() '''重新实现鼠标释放事件...\n" + \ "单击鼠标可以开启这个功能" self.update() '''重新实现鼠标移动事件''' def mouseMoveEvent...format(event.pos().x(), event.pos().y(), globalPos.x(), globalPos.y()) self.update() '''重新实现鼠标双击事件...event.type() == QEvent.KeyPress and event.key() == Qt.Key_Tab): self.key = "在event()中捕获
说到js事件大家肯定都知道,那么今天讲一点大家不知道的(假设大家不知道?)。 所有的js事件都会分为两个阶段捕获和冒泡。...那么问题来了,我们通常看到的事件都是直接触发之后就执行了,那么我们怎么才能看到事件的捕获和冒泡都是怎么进行的呢,这里给大家准备了一个例子 addEventListener() 例子之前首先给大家简单介绍一下...true表示监听事件的捕获阶段,false表示监听事件的冒泡阶段。 返回值 没有返回值 示例: <!...其次是inner捕获阶段 然后是inner冒泡阶段 最后是outer冒泡阶段 由此我们可以看到,事件触发的时候实际上都是有捕获和冒泡阶段的,并且捕获阶段会从最外层的父级元素开始捕获,一直捕获到最后触发事件的那个元素点才会停止...并且事件的触发是先捕获,在冒泡。 阻止事件冒泡 事件的冒泡会让我们实现某些功能的时候产生阻碍,那么我们怎么怎么阻止事件的冒泡呢,这个时候就会用到一个方法。
事件与事件流 事件,是文档或浏览器窗口发生的一些特定的交互事件。事件流,描述的是页面中接收事件的顺序。 默认情况下,事件使用冒泡事件流,不使用捕获事件流。...捕获与冒泡 事件捕获:执行顺序(document->html->body->div) 事件冒泡:执行顺序(div->body->html->document) IE < 9:只支持事件冒泡...IE 9+|chrome|firefox|safari:事件冒泡+事件捕获 阻止捕获与冒泡 event.stopPropagation() 示例代码 <!...'); // 阻止事件捕获,内层不会再捕获到事件 // event.stopPropagation(); }, true); middle.addEventListener...('click', function (event) { console.log('middle-->事件冒泡'); // 阻止事件冒泡,外层不会再捕获到事件
一、知识要点 1、onmousemove 鼠标移动事件(要考虑页面滚动) 2、var X = ev.clientX; 3、var Y = ev.clientY + scrollTop; // 加上了滚动距离...> 鼠标跟随事件...div1'); document.onmousemove = function (ev) { var ev = ev || event; // 获取事件对象
DOCTYPE html> js控制SVG缩放 ...; svgBackground.appendChild(line2) } } /* * js...drawGrid(gridSvg, width*(1/scale), height*(1/scale), gridLength); } // 绑定鼠标滑轮...} window.onmousewheel = document.onmousewhell = scrollZoom; /* * 滑轮滚动处理事件...,向上滚动放大 * {Object} e 事件对象 */ function scrollZoom(e) { e = e || window.event
js中事件捕获的实现 1、当鼠标点击或触发dom事件,触发dom事件的元素称为事件源。 2、浏览器会从根节点=>事件源(从外到内)传播事件。...3、不太具体的节点应该更早接收到事件,最具体的节点应该最后接收到事件。...s2">s2 s1.addEventListener("click",function(e){ console.log("s1 冒泡事件...false); 以上就是js中事件捕获的实现,希望对大家有所帮助。...更多js学习指路:js教程 推荐操作环境:windows7系统、jquery3.2.1版本,DELL G3电脑。
鼠标点击、鼠标移动、鼠标滚动、按下键盘,浏览器窗口大小的改变,网页加载完成,关闭网页等等都会发生事件。 2、什么是事件流 事件流,描述的是页面中接受事件的顺序。...一个完整的JS事件流是从window开始,最后回到window的一个过程。 事件流被分为三个阶段(1~ 5)捕获过程、(5~ 6)事件触发过程、(6~ 10)冒泡过程。...三、阻止冒泡 1、JS阻止事件冒泡 我们用 e.stopPropagation() 这个方法添加到某事件函数里的末尾,就可以做到阻止冒泡事件。...当事件触发时,事件对象会作为第一个参数传入函数。事件对象的类型取决于特定的事件。例如, “click” 事件属于 MouseEvent(鼠标事件) 对象。 useCapture 可选。...布尔值,指定事件是否在捕获或冒泡阶段执行。 可能值: true - 事件句柄在捕获阶段执行 false - 默认。
onmousewheel <script> var scrollFunc = function (e){ //其实我一开始也不知道用啥 ...
javascript 的事件捕获和事件冒泡之前一直没能弄明白,知道看到一个例子。...利用丢一颗石头入水的例子,就能够非常形象了,如图所示: 事件捕获和事件冒泡就像是一颗石头(点击事件)投入水中: 首先是最外层水面(html)接触(捕获)石头,然后石头下沉,内层的水(body/dom...点击可查看示例 去示例中试一试便清楚了~ 处理事件 理解了事件的捕获和冒泡机制,对于事件处理就好办了。...监听事件 /** * @param { event } 事件 * @param { functionEvent } 事件处理函数 * @param { capture } 是否在捕获阶段触发事件...,比如是在‘石头’下沉或者‘气泡’冒泡的过程中使之突然消失 事件代理: 从上面事件机制可以看出,如果没有外部干扰,在子节点上触发的事件,在捕获和冒泡最终都会经过父节点 因此,我们可以将事件处理函数绑定在父节点上面
使用jQuery,几句代码就可以搞定了 document.oncontextmenu = function(){return false;} 简单示例: js实现: 鼠标右键事件...DOCTYPE html> 鼠标右键事件 安安安安 //阻止鼠标右键事件
一、知识要点 1、匿名函数 2、鼠标事件 3、document.getElementById() 4、window.onload 5、行间事件提取 二、源码参考 <!
action事件先执行,但是action事件除了鼠标还可以用键盘执行,因此推荐使用action事件 //action事件 button.addActionListener...Override public void actionPerformed(ActionEvent e) { System.out.println("鼠标点击...action事件"); } }); //鼠标点击 button.addMouseListener(new MouseAdapter...@Override public void mouseClicked(MouseEvent e) { System.out.println("鼠标单击..."); if(e.getClickCount()==2){ System.out.println("鼠标双击");
1.常用鼠标事件 1.1 案例:禁止选中文字和禁止右键菜单 1.禁止鼠标右键菜单 contextmenu主要控制应该何时显示上下文菜单,主要用于程序员取消默认的上下文菜单 document.addEventListener...现阶段我们主要是用鼠标事件对象 MouseEvent 和键盘事件对象 KeyboardEvent。...1.3 获取鼠标在页面的坐标 // 鼠标事件对象 MouseEvent document.addEventListener('click', function...这个天使图片一直跟随鼠标移动 案例分析 ① 鼠标不断的移动,使用鼠标移动事件: mousemove ② 在页面中移动,给document注册事件 ③ 图片要移动距离,而且不占位置,我们使用绝对定位即可...1px 就会触发这个事件 // 2.核心原理: 每次鼠标移动,我们都会获得最新的鼠标坐标, // 把这个x和y坐标做为图片的top和left 值就可以移动图片
.hover(handlerIn(eventObject),handlerOut(eventObject)) handlerIn(eventObject) 当鼠标指针进入元素时触发执行的事件函数...handlerOut 当鼠标指针离开元素时候触发执行的事件函数。 ..., 解除绑定上面的例子中使用: $("td").unbind('mouseenter mouseleave'); .mousedown() 当鼠标按下的时候绑定的事件处理函数....'); }); .mouseenter() 当鼠标指针进入穿过元素时候触发的事件。 ...").mouseout(function(){ ("p").css("background-color","#E9E9E4"); }); .mouseover() 当鼠标指针位于元素上方时触发的事件
领取专属 10元无门槛券
手把手带您无忧上云