登录
注册
关于我们
简体中文
ENGLISH
搜索
购物车
0 ITEMS ON YOUR CART
首页
动态
方案
案例
专栏
期刊
联系我们
首页
期刊
[Ext JS 7]事件(Event)
Ext JS开发大全
第1章 Ext JS快速入门示例[4/4]
第12章[12.10]富文本编辑器 CKEditor与Ext JS的整合
第12章[12.10.1] Ext JS + CKEditor+Spring Boot 实现编辑器图片上传
第11章[11.6] Ext JS 自行搭建远端库的包升级版本后找不到的问题解决
[Ext JS 4] 实战之Grid, Tree Gird编辑
ext命令集
第12章[12.3] Ext JSGrid中的超链接列及其功能实现
[Ext JS]textfield添加compositionstart、compositionupdate 和compositionend _os
[Ext JS ] 动添切换字段的必填与非必填
3.1 Ext JS 组件总览
[Ext JS] Grid表格批量编辑的实现
Ext JS 快速开发工具
带触发器按钮的输入框
Ext JS的布尔对象类型处理及便捷方法
Ext JS的Object类型处理及便捷方法
ExtJS RadioGroup(单选按钮组) 使用及注意事项
Ext JS 模拟后端数据实现
ToolTip 实现全介绍
Ext JS下拉单选框(Combobox,TagFied)使用及疑难问题解决
Ext JS应用测试概览
Sencha Studio 监视工具( Inspect Tool)
Ext JS 4 升级指南
Ext JS 如何定义公用方法(单例类 or 静态方法)
Ext JS的模块化开发(Package)
Ext3 -- Form 实例。 用来migrate file 数据到DB用的
ExtJS 3 在Tab下加入Form 实例
Extjs Grid 中给已经添加过Filter的列增加标识
Extjs 实战之 Ext.tree.TreePanel Tree无法显示
Extjs弹出框的异步执行
Grid 动态该表列( reconfigure)的性能改善
Spring Boot Ext JS准前后端框架应用的会话(Session)处理
[Ext JS 4] Extjs 图表 Legend(图例)的分行与分列显示
[Ext JS 4] Extjs 之 initComponent 和 constructor的区别
[Ext JS 4] Grid 中的单元格添加Tooltip 的效果
[Ext JS 4] Grid 实战之分页功能
[Ext JS 4] Grid 组件
[Ext JS 4] MVC 应用程序框架
[Ext JS 4] MVC 应用程序框架
发布 [Ext JS 4] contentEL,renderTo, applyTo 释义与区别
[Ext JS 4] 动态加载
[Ext JS 4] 实战之 ComboBox 和 DateField (消失之解决办法)
[Ext JS 4] 实战之 Picker 和 Picker Field
[Ext JS 4] 实战之 带week(星期)的日期选择控件(二)
[Ext JS 4] 实战之 ComboBox 和 DateField 的点击事件在IE下失效
## [Ext JS 4] 实战之 带week(星期)的日期选择控件(三)
[Ext JS 4] 实战之 带week(星期)的日期选择控件
[Ext JS 4] 实战之Chart 坐标控制(单坐标,双坐标)
[Ext JS 4] 实战之Chart, Column Chart 定制颜色
[Ext JS 4] 实战之Grid, Tree Gird 动态添加列
[Ext JS 4] 实战之Grid, Tree Gird 动态添加列续(性能考虑)
[Ext JS 4] 实战之Grid, Tree Gird 动态添加行
[Ext JS 4] 实战之Grid, Tree Gird 添加按钮列
[Ext JS 4] 实战之Grid, Tree Gird编辑Cell
[Ext JS 4] 实战之Load Mask - 在Grid Reconfigure的使用状况
[Ext JS 4] 实战之Load Mask(加载遮罩)的显示与隐藏
[Ext JS 4] 实战之多选下拉单 (带checkbox) 续 - 带ALL 选项
[Ext JS 4] 实战之多选下拉单 (带checkbox)
[Ext JS 4] 实战之升级系列一[Ext jS 3-->Ext JS 4]
[Ext JS 4] 实战之将chart导出为png, jpg 格式的文件
[Ext JS 4] 实战之浏览器兼容
[Ext JS 4] 布局之实战二 - 中间区块不会自动伸展 (tab)续
[Ext JS 4] 组件之图表
[Ext JS 4]后台自动产生图档
[Ext JS 4]性能优化
[Ext JS 7 ]7.5 自适应配置 - Responsive Configs
[Ext JS 7] 关联(Association)
[Ext JS 7]事件(Event)
[Ext JS 7]ClassRequire错误解决
[Ext JS 7]的开发模式
[Ext JS 7]基于NPM的开发
[Ext JS ] 动添切换字段的必填与非必填
[Ext JS4] 数据包
[Ext JS4系列]Ext JS4 入门
[Ext JS6] Grid不同列的关联编辑
[Ext JS6] ViewControllers-视图控制器
[Ext JS6]Ext.Template
[Ext JS6]Sencha Cmd
[Ext JS6]编码规范
[Ext JS6]多类型设备开发
[Ext JS6]工作区-Workspace
[Ext JS6]路由(Routing)及使用
[Ext JS6]视图模型和数据绑定
[Ext JS6实战] Ajax获取Tree Store
[Ext JS6实战] Ext.XTemplate
[Ext JS6实战]动态数据绑定
[Ext JS] Sencha Cmd命令参考之二
[Ext JS] Sencha Cmd命令参考之一
[Ext JS] Group Grid-分组网格
[Ext JS] Group Grid-分组网格
[Ext JS]嵌套Grid的实现及注意事项
[Ext JS]SimXhr.js__dc=1659315492151_65 Uncaught TypeError问题分析与解决
[Ext JS]Sencha Studio安装与快速介绍之一
[Ext JS]textfield 添加 compositionstart、compositionupdate 和 compositionend
[Ext JS]图片显示方式
[ExtJS 6]Grid分页工具栏无效问题解决
[ExtJS6]ResponsiveColumn-自适应列布局
[Extjs 4] 类系统
基于Ext JS的模块化应用框架搭建及开发
[Ext JS] 自行搭建远端库的包升级版本后找不到的问题解决-The following versions are available
[Ext JS]鼠标移入移除时弹出和关闭窗口
[Ext JS]富文本编辑器 CKEditor与Ext JS的整合
[Ext JS]可编辑列Grid的全场景开发
['Ext JS]Grid中的超链接列及其功能实现
[Ext JS]Ext JS + CKEditor+Spring Boot 实现编辑器图片上传
[Ext JS]介绍与快速入门1
[Ext JS]实现带动态数字的图标
Spring Boot+Ext JS 实现图形验证码
Ext JS介绍与快速入门2
Ext JS开发基本环境准备与项目创建
[Ext JS]开发模式及快速测试方式
[Ext JS]多类型终端-电脑、移动端(手机、平板)
[Ext JS]基于Ext JS的MVC/MVVM架构的应用开发模式
[Ext JS]Ext JS的类与类体系
[Ext JS]Ext JS组件、容器与布局
[Ext JS]组件与容器的选择与开发
[Ext JS]Ext JS数据模型与数据封装
[Ext JS]Ext JS的控制器类型及使用
[Ext JS]说透Ext JS的窗口及对话框用法
[Ext JS]说透Ext JS的窗口及对话框用法
[Ext js]Grid行选择的多种场景和实现方式
[Ext JS]Ext JS类的继承与混合
CmsWing
[Ext JS 7]事件(Event)
## [Ext JS 7]事件(Event) ### 监听事件 ```javascript 一个组件可以监听多个事件,比如 Ext.create('Ext.Button', { renderTo: Ext.getBody(), text: 'My Button', listeners: { mouseover: function () {//鼠标放上去调用hide()方法 this.hide(); //hide也是默认方法,可以重写 }, hide: function () {// 1 秒后显示 Ext.defer(function () { this.show(); }, 1000, this); } } }); ``` 以上示例的效果是: 鼠标放上去隐藏按钮, 一秒钟后再显示。 ### 添加监听 事件的监听可以在组件配置里添加,也可以在组件创建后添加。 在创建实例时添加,使用listeners 选项配置 ```javascript Ext.create('Ext.Button', { renderTo: Ext.getBody(), text: 'My Button', listeners: { click: function () { alert("Click") } } }); ``` 在已有实例上添加, 使用on()方法添加 ```javascript var button = Ext.create('Ext.Button', { renderTo: Ext.getBody(), text: 'My Button' }); button.on('click', function() { alert("Click") }); ``` .on的方法也可以添加多个事件,比如上面的mouseover()和hide()。 ### 移除监听 使用 un()方法可以移除已经添加的监听,示例: ```javascript var doSomething = function() { Ext.Msg.alert('Success!', 'listener called');}; var button = Ext.create('Ext.Button', { renderTo: Ext.getBody(), text: 'My Button', listeners: { click: doSomething, }});Ext.defer(function() { //3秒后移除事件 button.un('click', doSomething);}, 3000); ``` ### 监听的范围 使用scope可以限定监听事件的范围,比如有一个按钮,添加事件时,设置 ```javascript var panel = Ext.create('Ext.Panel', { html: 'Panel HTML' }); var button = Ext.create('Ext.Button', { renderTo: Ext.getBody(), text: 'Click Me' }); button.on({ click: function () { Ext.Msg.alert('Success!', this.getXType()); //默认是button,设置scope为panel,则是panel },scope: panel }); ``` 注意: 这里on方法的参数传递的是一个对象,而不是函数,也可使用如下写法: ```javascript button.on({ click: { scope: panel, fn: function() { Ext.Msg.alert('Success!', this.getXType()); } }}); ``` scope不同,在事件方法中通过this获取的组件不同 只监听一次,使用single配置项 ```javascript var singleClidkbutton = Ext.create('Ext.Button', { text: '仅监听一次点击事件', listeners: { click: { single: true, fn: function () { Ext.Msg.alert('Success!', '仅执行一次'); } } } }); var myContainer = Ext.create('Ext.container.Container', { items: [singleClidkbutton], renderTo: Ext.getBody() }); ``` ### 缓冲配置 buffer 防止短时间内频繁点击或重复点击 比如:在2秒的时间内只能点一次 ```javascript var button = Ext.create('Ext.Button', { renderTo: Ext.getBody(), text: 'Click Me', listeners: { click: { buffer: 2000, fn: function() { Ext.Msg.alert('Success!', 'I say this only once every 2 seconds'); } } }}); ``` ### 触发事件的方法 fireEvent() ```javascript var myEventButton = Ext.create('Ext.Button', { text: '自定义事件', listeners: { myEvent: function (button, time) { Ext.Msg.alert('Success!', 'myEvent fired! You click at ' + time); } } }); myEventButton.fireEvent('myEvent', myEventButton, new Date()); ``` ### 监听DOM事件 并不是所有的Ext JS组件都会触发所有事件,但是通过定位组件的DOM元素,可以添加本地事件,以Ext.container.Container.?为例, 监听click时间是无效的,通过getEl()添加本地事件,示例如下: ```javascript var mycontainer = Ext.create('Ext.Container', { html: '添加事件到容器!', listeners: { click: function(){ Ext.Msg.alert('Success!', 'I have been clicked!') } } }); mycontainer.getEl().on('click', function(){ this.fireEvent('click', mycontainer); }, mycontainer); ``` ### 事件归一化 时间规范化是Ext JS5之上的版本可以在触屏设备上可以使用的关键。 是从标准鼠标事件到它们等效的触摸和指针事件的简单转换。 指针事件是w3c标准,用于处理针对屏幕上一组特定坐标的事件,而与输入设备(鼠标,触摸,手写笔等)无关。 当您的代码为鼠标事件请求侦听器时,框架将根据需要附加类似的触摸或指针事件。 例如,如果应用程序尝试附加mousedown侦听器: 比如: myElement.on('mousedown', someFunction); 1 对于支持触摸事件的设备,事件系统会将其转换为touchstart: myElement.on('touchstart', someFunction); 1 或者,在支持指针事件的设备的情况下,pointerdown: myElement.on('pointerdown', someFunction); 1 这个转换是已经准备好的, 因此无需任何其他编码即可获得平板电脑和触摸屏支持。 可以使用 translate事件选项禁用转换: ```javascript myElement.on({ mousedown: someFunction, // only listen to mousedown. Do not call the handler in response to touchstart or pointerdown. translate: false}); ``` 除了DOM事件和Component事件外,Ext JS还提供了强大的系统来识别有意义的手势,因为它们可以进行pinch捏,rotate旋转,drag拖动等操作。可以参考Gesture。
网站导航
首页
动态
方案
案例
专栏
期刊
联系我们