首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

由于角2中的父MouseEvent,在子对象上单击MouseEvent不会被执行

的原因是事件冒泡和事件捕获机制。

事件冒泡是指当一个元素上的事件被触发时,该事件会从最内层的元素开始向外层元素逐级触发,直到触发到最外层的元素。而事件捕获则是相反的过程,事件从最外层元素开始,逐级向内层元素触发。

在这个问题中,当在子对象上单击MouseEvent时,事件会首先触发子对象上的事件处理函数,然后再逐级向外层元素触发,直到触发到父MouseEvent。但是由于父MouseEvent并没有绑定相应的事件处理函数,所以事件在父MouseEvent上不会被执行。

解决这个问题的方法有两种:

  1. 在父MouseEvent上绑定相应的事件处理函数,使其能够响应子对象上的事件。
  2. 使用事件捕获机制,将事件从最外层元素开始触发,逐级向内层元素传递,这样父MouseEvent上的事件处理函数就能够被执行。

推荐的腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

js鼠标事件 clientX、clientY、offsetX、offsetY、layerX、layerY、pageX、 pageY、screenX、screenY「建议收藏」

MouseEvent类别有以下: mousedown 鼠标按下 mouseup 鼠标释放 click 左键单击 dblclick 左键双击 mousemove 鼠标移动 mouseover 鼠标经过...mouseenter 鼠标进入 mouseleave 鼠标离开 contextmenu 右键菜单 注意: 执行顺序:mousedown —> mouseup —> click 区别:mouseover和mouseout元素也会触发...对象 打印出MouseEvent对象内容: document.body.addEventListener("mousedown",clickHandler); function clickHandler...layerX,layerY layerX,layerY 往上找有定位属性元素左上角(自身有定位属性的话就是相对于自身),都没有的话,就是相对于body左上角 当元素及它级都没有定位属性时,以...body左上角为原点: 当元素级都有定位属性时,以左上角为原点: 当元素自身有定位属性时,以自身左上角为原点: pageX, pageY pageX, pageY

2.7K20

移动端页面如何优雅适配各种屏幕,包括PC端

' 接下来修改一下我们上面的示例,给按钮增加一个touchstart事件: 然后分别在模拟器和非模拟器环境下单击一下按钮: 显然,非模拟器环境下单击是没有效果,接下来配置一下 @varlet/touch-emulator...,所以这里传true笔者猜测是因为如果是冒泡阶段触发的话,某个元素可能会阻止冒泡,那么就不会触发window绑定这几个事件了。...eventTarget.dispatchEvent) 鼠标按下显然对应是touchstart,触发第一个touch事件,事件目标肯定也是新,所以需要更新,理论不同手指事件目标是可能不一样,但是由于桌面端鼠标事件只能有一个...:当前屏幕所有触摸点列表 targetTouches:当前对象所有触摸点列表 changedTouches:涉及当前(引发)事件触摸点列表 移动端触摸点是可能存在多个,比如我同时好几个手指一起触摸...最后事件目标上进行了事件派发。 总结一下,整体所做事情就是监听鼠标的三个事件,然后手动创建对应touch事件对象,最后事件目标元素上进行派发即可。

2K20
  • 如果用java swing编写一个五棋(人人对战)

    一.前言 刚学习java,一次写了一个姓名随机抽取器,点击查看,参加了原力计划,被小编推荐到了首页,也是第一次首页看到自己写东西,当时看到那一刻实实在在很开心,其实我们好多人学习东西,恰恰就需要那么一点点鼓励和被重视...,没错,我就是这类人,通过这次被官方推荐,我小小内心得到了成就感,被人认可确实是一种美妙事,所以我又下决心向更有难度棋去挑战,但是由于本人能力有限,所以只写了人人对战,这期间也是遇到了无数BUG...我也找到了游戏背景,棋子落下时也会有音乐,由于录制是动态图,所以没办法在这里给各位呈现音乐效果,下面有游戏效果和流程图,由于代码可能比较繁琐,我特意准备了流程图帮助各位理解,至于代码,我会尽可能注释清楚...我们不需要每次都遍历所有棋子信息,这样太费事了没有人傻到五连珠,然后继续玩下去,我们可以断定是一颗棋子落子之前是不会有五连珠,所以我们只需要判断最后一次落子,例如水平方向上判断: 我们可以获得该棋子坐标...e) { } public void mouseClicked(MouseEvent e) { //获取鼠标单击事件 ,当鼠标单击时,获取坐标 if(boonum==true

    1.2K51

    FlashFlex学习笔记(38):缓动动画

    (MouseEvent.MOUSE_OVER,function(){ Mouse.cursor = MouseCursor.HAND;}); //中心画个十字架 graphics.lineStyle...这样物体会不断向B点靠近,直到移动到B点;但从另一度考虑,因为每次只移动一半距离,所以永远也不可能真正达到B点。...同时再考虑另一个因素,Flash每次能将物体移动最小距离为0.05象素(即1/20象素),比这个值再小距离,Flash将不会处理。...所以再回头看上面的代码,我们判断物体是否到达目标点时,不能用 ball.x == targetX 来精确判断,因为这样条件也许永远不会成立,从而导致后面的removeEventListener也永远不会被执行到...,实际Flash/SilverlightIDE界面提供缓动类型更多(比如先慢慢启动,再慢慢停止--即淡入淡出之类),对应公式也有不少,www.robertpenner.com 大家可以到这上面找找

    56950

    【干货】20K以上高薪Java必掌握基础知识点(二)

    一期知识点小伙伴都掌握了多少呢?复习同时有没有查漏补缺巩固自己基础知识呢?今天我们来复习Java基础知识第二期! 61、Math 类提供了许多用于数学运算静态方法。...73、try-catch-finally 结构中, finally 语句块一般总是会被执行,不管有没有异常产生。...110、当用户与GUI 交互,比如移动鼠标、按下鼠标键、单击Button 按钮、文本框内输入文本、选择菜单项或者关闭窗口时,GUI 会接受到相应事件 。...113、只要用户单击JButton,就会触发一个ActionEvent 事件,该事件被监听器接收,它方法 actionPerformed() 被执行。...118、鼠标事件类型是 MouseEvent ,即当发生鼠标事件时,该类自动创建一个事件对象

    1.5K71

    Java图形用户界面设计AWT事件处理

    前面的文章介绍了如何放置各种组件,从而得到了丰富多彩图形界面,但这些界面还不能响应用户任何操作。比如单击前面所有窗口右上角“X”按钮,但窗口依然不会关闭。...GUI事件处理机制中涉及到4个重要概念需要理解: 事件源(Event Source):操作发生场所,通常指某个组件,例如按钮、窗口等; 事件(Event):事件源发生操作可以叫做事件,GUI...KeyEvent 键盘事件 , 当按键被按下、松开、单击时触发该事件。 MouseEvent 鼠标事件,当进行单击、按下、松开、移动鼠标等动作 时触发该事件。...事件 触发时机 ActionEvent 动作事件 ,当按钮、菜单项被单击 TextField 中按 Enter 键时触发 AjustmentEvent 调节事件,滑动条移动滑块以调节数值时触发该事件...但是,由于Java类采用单一继承机制,当事件监听器类已经存在类,或者需要实现多个事件监听器接口时,就不能再继承事件适配器。

    13110

    JAVA事件适配器作用

    大家好,又见面了,我是你们朋友全栈君。 适配器 其实从接口事件演变尔来。相当于触发器,说简单点,它就是一些动作 。 例如说 鼠标的按下 点击 还有键盘 等等。...适配器 就是实现 接口事件类 不过 ,不是真的实现 ,只是空实现 ,没有具体方法体。 适配器主要是为了方便程序员操作 ,避免了代码重复性。...只要一个对象或者属性添加了这个适配器, 那么它就会监视这对象或属性 。例如说一个按纽。...再说明白点 就相当你给按纽 添加了一个鼠标对象。 你通过 鼠标 就可以 产生对应动作!...e) 方法从而响应鼠标按键组件单击事件,重写mouseDragged(MouseEvent e)方法从而响应鼠标按键组件按下并拖动事件等等。

    51740

    第58节:Java中图形界面编程-GUI

    Java中GUI提供了对象 java.awt 和 javax.swing 两个包中 早年中, Java.awt为抽象窗口工具包, 英文为 Abstract Window ToolKit, 需要调用本地系统方法来实现功能需求...而在awt基础,创建了一套图形界面系统, 从而提供了更多组件, 而且完全是由Java实现, 增强了移植性, 属于轻量级控件....mouseListener public interface MouseListener extends EventListener 用于组件上接收“有趣”鼠标事件(按,释放,单击,输入和退出)侦听器界面...方法 方法详细信息: mouseClicked void mouseClicked(MouseEvent e) 组件单击鼠标按钮时调用 mousePressed void mousePressed...(MouseEvent e) 组件按下鼠标时调用 mouseReleased void mouseReleased(MouseEvent e) 组件释放鼠标时调用 mouseEntered

    1.8K30

    JavaScript鼠标事件细讲:执行顺序+注意事项+区别比对

    鼠标事件:DOM2.0中,W3C对鼠标事件作了现范,鼠标事件被解析为MouseEvent(我们可以用e.constructor == MouseEvent来判断其是否为鼠标事件。...常见鼠标事件有click:单击鼠标左键时发生。...与 click 不同,只要鼠标元素松开即触发(左右键都行)。mousedown:鼠标元素并按下时触发 mousedown 事件。与 click 不同,只要鼠标元素按下即触发(左右键都行)。...对应移除事件是mouseoutmouseenter(鼠标进入):当鼠标移入元素本身(不包含元素元素)会触发事件,也就是不会冒泡,对应移除事件是mouseleavemouseenter/mouseover...区别点:mouseenter不会冒泡,简单说,它不会被它本身元素状态影响到.mouseover就会被它元素影响到,触发元素时候,mouseover会冒泡触发它元素.

    3.4K21

    【QT】QT事件处理

    事件处理 QT中,事件作为一个对象,继承自QEvent类,常见有键盘事件QKeyEvent、鼠标事件QMouseEvent和定时器事件QTimerEvent等。...一旦有事件发生,QT便会构造一个相应QEvent子类对象来表示它,然后将它传递给QObject对象对象。 ---- 鼠标事件 对鼠标实现进行重写来实现你想要达到功能。...m_startY:m_startY+m_step; } } drawPix();//根据调整后图标位置重新m_pix绘制图像 update();//触发窗口重绘 }...m_stateLabel); resize(m_image2.width() * 3,m_image2.height() *2); //给图片标签部件安装事件过滤,并且指定整个窗体为监视事件对象...//放大图片 matrix.scale(2.0,2.0); //对象 if(watched == m_label1) { //鼠标按下事件处理

    1.5K10

    Java-GUI编程之事件处理

    事件处理 前面介绍了如何放置各种组件,从而得到了丰富多彩图形界面,但这些界面还不能响应用户任何操作。比如单击前面所有窗口右上角“X”按钮,但窗口依然不会关闭。...GUI事件处理机制中涉及到4个重要概念需要理解: 事件源(Event Source) :操作发生场所,通常指某个组件,例如按钮、窗口等; 事件(Event):事件源发生操作可以叫做事件,GUI...KeyEvent 键盘事件 , 当按键被按下、松开、单击时触发该事件。 MouseEvent 鼠标事件,当进行单击、按下、松开、移动鼠标等动作 时触发该事件。...2.高级事件:这类事件并不会基于某个特定动作,而是根据功能含义定义事件。...事件 触发时机 ActionEvent 动作事件 ,当按钮、菜单项被单击 TextField 中按 Enter 键时触发 AjustmentEvent 调节事件,滑动条移动滑块以调节数值时触发该事件

    1.4K20

    一文彻底搞懂js中位置计算

    实际工作中如果对于滚动操作有很频繁需求,个人建议去使用better-scroll,它是一个移动/web端通用js滚动库,内部是基于元素transform去操作滚动并不会触发相关重塑/回流。...offset MouseEvent.offsetX/offsetY MouseEvent 接口只读属性 offsetX/Y 规定了事件对象与目标节点内填充边(padding edge) X/Y 轴方向上偏移量...注意是触发元素也就是 e.target,额外小心如果事件对象中存在从一个元素当移动到元素内部时,e.offsetX/Y 此时相对于元素左上角偏移量。...我们来看看这张图: 计算元素距离 body 偏移量 当我们需要获得元素距离 body 距离时,但是又无法确定元素是否存在定位元素时(大多数时候组件开发中,并不清楚节点是否存在定位)。...window.getComputedStyle 用法讲解 Window.getComputedStyle()方法返回一个对象,该对象应用活动样式表并解析这些值可能包含任何基本计算后报告元素所有CSS

    3.8K10

    as3.0中如何阻止事件冒泡?

    as3.0中事件冒泡机制有时候会很烦人,比如一个Sprite(方便下文描述就命名为Container吧)把另一外Sprite(称为Child吧)做为元素套进来以后,如果两个Sprite都注册了Mouse_Down...sub_Child上点击时,另外二个Sprite就不会响应Mouse_Down事件,但是stopImmediatePropagation方法与stopPropagation有什么区别呢?...,最小矩形_sub_Child上点击,输入如下: _sub_child.MOUSE_DOWN_2 _sub_child.MOUSE_DOWN_1 _child.MOUSE_DOWN _container.MOUSE_DOWN..._2"); } 这回输出不同了: _sub_child.MOUSE_DOWN_2 _sub_child.MOUSE_DOWN_1 小结:如果某对象一个事件同时添加多个监听,stopPropagation...将把该事件注册所有监听处理函数执行完后,再阻止该事件继续向上冒泡;而stopImmediatePropagation方法将本次处理函数执行完后就立即阻止事件继续向上冒泡(即同一事件其它监听函数将不会执行

    1.6K60

    python GUI库图形界面开发之PyQt5信号与槽事件处理机制详细介绍与实例解析

    ,然后发射这个信号,则不关心,但是如果要重载一个按钮,这时候就要关心了,比如可以改变它行为:鼠标按下时触发clicked信号,而不是释放时 PyQt5常见事件类型 pyqt是对Qt封装,qt程序是事件驱动...,由于这中方法会调用installEventFilter所有QObject事件进行过滤,因此如果要过滤事件比较多,则会降低程序性能 4 、QApplication中安装事件过滤器 这种方法比上一种更强大...,Tab键由于涉及焦点切换,不会传递给keyPressEvent,因此,需要在这里重新定义。'''...,建立text和message两个变量,使用painEvent函数把他们输出到窗口中 update函数作用是更新窗口,由于窗口更新过程中会触发一次paineEvent函数(paintEvent是窗口基类...重载tab键 '''重新实现其他事件,适用于PyQt没有提供该事件处理函数情况,Tab键由于涉及焦点切换,不会传递给keyPressEvent,因此,需要在这里重新定义。'''

    2.6K21
    领券