ExtJs实现阻止冒泡,以及再次允许冒泡——stopPropagation的正确使用
来源:互联网 发布:反arp攻击软件 编辑:程序博客网 时间:2024/05/29 14:20
需求如下:
↑ 图一:这是正常状态
↑ 图二:这是hover效果
↑ 图三:这是点击编辑按钮之后的状态
注:页面中是3个Panel ,每个Panel都绑定了点击事件。“输入框0”这不是Label而是一个readOnly为false的TextField,点击编辑的时候TextField可以编辑。
那么问题来了,每次点击TextField的时候都会触发上级Panel的点击事件(冒泡问题)!
解决代码:
listeners: { afterrender:function(){ var father = this.ownerCt; this.el.on("mousedown",function(){ if(this.dom.willValidate == true){ var thisId = this.id; var thisIdS = "#"+thisId; console.log("阻止冒泡"); $(thisIdS).click( function(event){event.stopPropagation();}) } else { father.clickFn(); } }); }, }
至于再次允许冒泡,好像无法直接恢复,所以直接再次调用父Panel的点击事件,来制造一个冒泡。
注:其中的 this.dom.willValidate可用于对 “输入框是否可编辑 进行判断 ”,作用相当于 this.readOnly ,只不过此处无法获取 readOnly 属性。因为此处是在 element 内部进行判断操作的,而 readOnly 是属于Ext 对象的属性。
0 0
- ExtJs实现阻止冒泡,以及再次允许冒泡——stopPropagation的正确使用
- e.stopPropagation()阻止冒泡
- 阻止事件冒泡stopPropagation的兼容写法
- 阻止冒泡的方法 event.stopPropagation();
- 阻止事件冒泡event.stopPropagation()
- js return与stopPropagation阻止事件冒泡区别以及addEventListener
- 事件冒泡 ,阻止事件冒泡 e.stopPropagation()
- 阻止js事件冒泡的例子(cancelBubble 、stopPropagation)
- AngularJS ng-click stopPropagation(阻止冒泡)
- AngularJS阻止事件冒泡$event.stopPropagation()
- 阻止事件冒泡,阻止默认事件,event.stopPropagation()和event.preventDefault(),return fal的区别
- jquery 事件冒泡的介绍以及如何阻止事件冒泡
- Jquery 事件冒泡的介绍以及如何阻止事件冒泡
- 阻止冒泡的兼容性写法,以及阻止浏览器默认事件
- 阻止JavaScript事件冒泡传递(cancelBubble 、stopPropagation)
- 阻止 JavaScript事件 冒泡传递 (cancelBubble 、stopPropagation)
- 阻止JavaScript事件冒泡传递(cancelBubble 、stopPropagation)
- 阻止JavaScript事件冒泡传递(cancelBubble 、stopPropagation)
- jquery $.expr[':'] 用法体会
- java常用的几种线程池比较
- DAO模式
- 13.服务器端脚本
- 在C语言中使用全局变量
- ExtJs实现阻止冒泡,以及再次允许冒泡——stopPropagation的正确使用
- SSL JudgeOnline 2322——运输
- WebRTC中丢包重传NACK实现分析
- WindowsUpdate检查更新报错,错误码8024402F
- Foundation框架学习之NSArray和NSMutableArray
- Spring依赖注入,在main方法或junit测试类里获取得Spring容器
- Vue组件学习
- DirectX修复windows下.exe文件启动失败。
- Android实训案例(三)——实现时间轴效果的ListView,加入本地存储,实现恋爱日记的效果!