加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

DataGrid区分单击双击事件

发布时间:2020-12-15 04:52:16 所属栏目:百科 来源:网络整理
导读:?今天碰到一个需求,就是在一个数据列表中既要注册单击事件又要注册双击事件,但是好像双击既会执行单击事件又会执行双击事件,而不会只执行双击事件。这里提供一种可以区分单、双击事件并且分事件类型执行的方法,这个方法也是我在网上看了别人改的,呵呵。

?今天碰到一个需求,就是在一个数据列表中既要注册单击事件又要注册双击事件,但是好像双击既会执行单击事件又会执行双击事件,而不会只执行双击事件。这里提供一种可以区分单、双击事件并且分事件类型执行的方法,这个方法也是我在网上看了别人改的,呵呵。

注册事件:

_commonReportDataGrid.addEventListener(ListEvent.ITEM_CLICK,onClick);

_commonReportDataGrid.addEventListener(ListEvent.ITEM_DOUBLE_CLICK,onDoubleClick);

区分事件并分别执行:

private function onClick(event:ListEvent):void{
??? ??? ??? ??? isDoubleClick = false;
??? ??? ??? ??? var timer:Timer = new Timer(260,1);
??? ??? ??? ??? timer.start();//也就是说两次单击间隔在260毫秒之内的就被认为是双击?
??? ??? ??? ??? timer.addEventListener(TimerEvent.TIMER,function clickOrDouble(){
??? ??? ??? ??? ??? if(isDoubleClick){
??? ??? ??? ??? ??? ??? mouseDoubleClickHandler(event);
??? ??? ??? ??? ??? }else{
??? ??? ??? ??? ??? ??? itemClickHandler(event);
??? ??? ??? ??? ??? }
??? ??? ??? ??? });//这边的clickOrDouble也可以写成匿名函数,把ListEvent传进去
??? ??? ??? }
??? ??? ???
??? ??? ??? private function onDoubleClick(event:ListEvent):void{
??? ??? ??? ??? isDoubleClick = true;
??? ??? ??? }

?

mouseDoubleClickHandler和itemClickHandler两个方法就是分别执行单击和双击事件的业务逻辑,这里就不贴出来了,这里用了一个匿名函数来传参数。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读