Sencha Touch 解决 button tap事件 按下和弹起 两次响应

Fastjson2升级指南:如何平滑迁移并避免兼容性问题 本文详细介绍了Fastjson2的升级指南,涵盖兼容性检查、性能调优及零停机迁移方案。通过实战案例展示如何避免常见问题,如日期格式严格校验和字段映射策略变化,并分享高性能配置技巧如JSONB二进制协议和内存池化。帮助开发者平滑迁移至Fastjson2,提升JSON处理效率。 阅读详情


        var fPanel = Ext.create('Ext.Panel',{
            id:'panel',
            items:[{
                xtype:'panel',
                layout: {
                        type: 'vbox',
                        pack:'center',
                        align: 'center'
                    },
                items:[{
                    text:'提交',
                    xtype: 'button',
                    listeners: {
                        scope  : this,
                        release : function(button, e, eOpts) {
                            alert();
                        },
                        tap: function(button, e, eOpts) {
                            alert(e);
                        }
                    }
                }]
            }]
        });
        
        Ext.Viewport.add(fPanel); 


在使用 sencha touch 4的时候,创建一个按钮,并添加响应一个tap事件的时候,造成两次响应。
代码大概就像上面那样子。


无论是tap事件响应,还是release事件响应,在按钮点击pressed的时候会响应一次,貌似按钮获得焦点后,处于按下状态。

当再点击任意位置时,按钮释放,又再次响应了一次相同的事件。

貌似在ios的safari下会产生这种想象,chrome下没有。

整个过程相当于click等于两次tap事件,tapstart和tapend吧。

这里解决的方式如下:


tap: function(button, e, eOpts) {
    setTimeout(function() {
        alert();
    }, 0);
}

在触摸周期完成之后再执行其他代码,这样子,两次的想象就消除了。

貌似datalistview的itemtap也有这个问题。


同样的方式:

Ext.define("Storefront.view.Test", {
    extend : 'Ext.Container',
    xtype  : 'test',
    config : {
        centered : true,
        tpl      : '<div class="sf-button sf-button-main">Hello World</div>',
        data     : {}
    },
    initialize   : function() {
        this.callParent();
        this.element.on({
            tap        : this.onTap,
            touchstart : this.onTouchStart,
            touchend   : this.onTouchEnd,
            delegate   : '.sf-button'
        });
    },
    onTap        : function(evtObj) {
        alert('button tapped');
    },
    onTouchStart : function(evtObj) {
        console.log('touchstart fired ' + evtObj.getTime());
        var btn = evtObj.getTarget('.sf-button');
        if(btn) {
            Ext.fly(btn).addCls("sf-button-pressed-main");
        }
    },
    onTouchEnd   : function(evtObj) {
        console.log('touchend fired ' + evtObj.getTime());
        var btn = evtObj.getTarget('.sf-button');
        if(btn) {
            Ext.fly(btn).removeCls("sf-button-pressed-main");
        }
    }
});

To alleviate this issue, all we have to do is wrap the alert in a setTimeout. The setTimeout forces the function to execute after the touch event cycle has fully completed.

onTap: function(evtObj) {
    setTimeout(function() {
        alert('button tapped');
    }, 0);
}


别再死记硬背了!用51单片机的AD/DA和PWM,亲手做个简易示波器信号发生器 本文详细介绍了如何利用51单片机的PWM和AD/DA功能制作简易示波器信号发生器。通过PWM模拟DAC输出波形,结合XPT2046 ADC进行信号测量,实现方波、三角波和正弦波的生成与显示。项目不仅成本低廉,还能帮助电子爱好者深入理解51单片机的核心功能,是理论与实践结合的绝佳案例。 阅读详情

相关推荐

Zynq-PS-SDK(12) 之 VDMA+VTC+AXI4S-VideoOut 视频通路硬件搭建

前面分别叙述了《Zynq-PS-SDK(9) 之 VDMA》、《Zynq-PS-SDK(10) 之 VTC》以及《Zynq-PS-SDK(11) 之 AXI4-Stream To Video Out》;搭建一个简单的视频通路(Framebuffer -> HDMI)就要用到这些个模块,总体的设计框图如下所示: 视频数据的 Framebuffer 在 DDR 中,通过 Processing System 写入进去; 数据通过高带宽的 AXI4 接口(这里用到了 HP AXI,即 64bits 带

StephenZhou 5589

微信小程序van-button的disabled属性为true时仍能触发点击事件

使用了 bindtap 而不是 bind:click 来监听点击事件,disabled 属性禁止的点击事件是 click

欢迎光临雨落星辰的博客 3250

CTF 命令执行绕过总结

tac:从最后一行开始显示,可以看出 tac 是 cat 的反向显示。或:rce-xor-or.php & rce-xor-or.py。# ls -t >shell 将输出输入到shell文件中。异或:rce-xor.php & rce-xor.py。%09(url传递)(cat%09flag.php)sh /flag 2>%261 //报错出文件内容。2、1使用空变量$*和$@,$x,${x}绕过。7、异或无符号(过滤0-9a-zA-Z)more:一页一页的显示档案内容。

jnszstmei的博客 1958

微信小程序 van-button添加disabled属性,依然无法禁用按钮,表单可正常提交

原因:通过disabled属性来禁用按钮,禁用的是bind:click事件,无法禁用bindtap事件,我使用的是表单提交,应该调用的是bindtap,所以无法禁用。 解决办法:动态修改van-button里的formType="submit"为空,表单提交功能就失效了。 <view class="signUpCard"> <form bindsubmit="formSubmit"> <van-cell-group title="您好!您的微

weixin_40638616的博客 5746

保姆级教程:在爱快iKuai虚拟机里装OpenWrt旁路由,实现去广告和特殊功能

本文提供在爱快iKuai虚拟机中安装OpenWrt旁路由的详细教程,帮助用户实现去广告和特殊功能扩展。通过分步指导,包括虚拟机配置、网络设置和功能优化,打造稳定高效的家庭网络环境,特别适合软路由爱好者和网络管理员。

weixin_31364787的博客 810

新手避坑指南:用镭神C32和KVH 1750 IMU做标定,为什么直接上lidar_align会失败?

本文详细解析了使用镭神C32激光雷达和KVH 1750 IMU进行标定时常见的失败原因及解决方案。从IMU的微分传感器特性到Lidar-IMU标定的数学本质,再到可行的标定方案和实操注意事项,帮助新手避开认知陷阱,掌握正确的标定方法。

weixin_30162121的博客 327

disabled与tap(input的disabled='disabled'时tap事件任可触发)

一个input按钮加上disabled="disabled"后,它身上zepto的tap事件任然会触发,但是click事件不会触发 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" ...

628

Arduino-CRSF库详解:嵌入式端CRSF协议解析与ELRS接收机集成

CRSF(Crossfire Serial Protocol)是一种面向FPV无人机的轻量级、高实时性串行通信协议,采用单总线异步传输与8位CRC-8校验机制,广泛应用于遥控链路与遥测交互。其核心在于帧同步(0xC8起始字节)、反相逻辑电平及无重传的广播式设计,对嵌入式平台的UART精度、电平匹配和状态机健壮性提出严苛要求。Arduino-CRSF库正是为资源受限MCU(如ESP32、STM32、ATmega328P)提供零配置、中断安全的协议解析能力,封装了CRC查表计算、超时恢复、多级同步验证等关键机制

weixin_35756690的博客 415

按钮置灰后点击事件仍可以触发

【代码】按钮置灰后点击事件仍可以触发。

m0_63026408的博客 3735

ZYNQ通过AXI DMA实现PL发送连续大量数据到PS DDR

方案二是在PS端的MPU配置中,将DMA缓冲区所在的内存区域标记为“不缓存”(Device或Strongly Ordered类型),但这样CPU访问这些内存区的速度会大幅降低,需要根据实时性和数据正确性的需求做权衡。更妙的是,描述符链表可以做成一个环状队列,放在DDR里让DMA循环取走,从而实现持续不断的“流式”传输。用FPGA实现FFT硬件加速的系统中也是如此:PS向PL提交待处理的FFT数据,PL硬件加速计算后,DMA把结果写回DDR,全程CPU几乎只做配置调度,大量数据吞吐留给了硬件通道。

QQ_778132974的博客 171

军品研制过程-转阶段

介绍军品转阶段评审

Abel的博客 2万+

小程序项目中遇到的关于button 按钮的一些特殊情况

关于在项目中使用 Vant Weapp的一些注意事项 使用van-button按钮时遇到的一些问题: <van-button type="default">默认按钮</van-button> 正常模式: 禁用按钮: 常常按钮中所绑定的 事件/请求 等命令 当我们使用 disabled=‘true’ 来禁用该按钮时,希望将按钮所绑定的事件一起禁用掉,从而达到无法发出请求的效果,但最后发现无法阻止请求发送. 然后去看了UI文档,发现了玄机. 因为之前的

佐斌的笔记簿 1249

18、Excel VBA编程:自定义函数创建与代码调试全攻略

本文详细介绍了Excel VBA中自定义函数的创建方法,以获取单元格注释为例演示了完整开发流程,并深入讲解了代码调试的重要性与核心工具。内容涵盖三种主要错误类型及其应对策略,系统介绍了调试工具栏、断点、逐行执行、Locals窗口、Immediate窗口等实用功能。通过综合案例展示了如何运用调试技术解决实际问题,并总结了提前规划、逐步测试、日志记录等最佳实践,帮助读者提升VBA编程效率与代码质量。

life6的博客 100

按钮有嵌套关系时,disabled无效

问题: 页面跳转的按钮,即使设置了disabled={true} 任然每次都能实现跳转 <Link to={`${url}/create`} className="ml20" > <Button disabled={true} className="createBtn" icon={<PlusOutlined />}> Create

qq_41536505的博客 429

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

学习 easyui 之四:禁用 linkbutton 问题

  1.问题的起源 linkbutton 是 easyui 中常用的一个控件,我们可以使用它创建按钮。用法很简单,使用 a 元素,标记上 easyui-linkbutton 的类就可以看到按钮了。 &lt;a id="btn" class="easyui-linkbutton"&gt;这是一个按钮&lt;/a&gt; 看起来就是这个样子 或者使用代码方式。 $("#bt...

weixin_34088598的博客 392

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

点击一个按钮后禁用按钮,执行完事件后再启用按钮

Btn_submit.Attributes["onclick"] = this.GetPostBackEventReference(this.Btn_submit) + ";this.disabled=true;"; 这个可以禁用按钮,执行完之后用 Btn_submit.Style.Remove("disabled");

AngleKill的专栏 3545

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

在vue使disabled为true,click事件还能执行。

如果我用button标签disabled就能起到作用,但是如果用div,这个disable就无效了

weixin_43955988的博客 4217

移动端touch事件无视disabled属性

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34137799的博客 390

关于某些特殊时候按钮disabled属性失效时的解决办法

今天遇到了一个BUG,导致下一步按钮中的属性即时有disabled时,点击按钮依然会触发按钮的点击事件。 以下为下一步按钮的JS代码 /** * 下一步 */ $btn_step.click(function(e){ if($(this).hasClass('layui-btn-disabled')){ e.stopPropagatio...

暴走地水牛的博客 7039

tap 事件会触发两次问题

  因项目中使用 coffeeScript (http://coffee-script.org/),此处记录下用 coffeeScript 语法解决 tap 事件触发两次的问题。 在 id="button" 上绑定 tap 触摸事件如下代码: $(document).on 'tap', '#button', ()-> # 业务逻辑代码  console...

weixin_30670925的博客 1140

按钮触发事件,改变按钮的字和值,并且禁用其他按钮

1.页面上的按钮 <button type="button" class="layui-btn layui-btn-radius layui-btn-danger" id="suspend" value="0">暂停服务</button> <button type="button" class="layui-btn layui-btn-radius layui-bt...

Pluto.的博客 1056

disabled 的button hover事件_UE4 自定义的Button Normal Hover Pressed事件

接上一篇文章冯海亮:UE4 模拟键盘事件​zhuanlan.zhihu.com因为我是用摇杆设备来模拟了键盘的事件,所有UI上button的hover事件触发不了,虽然也可以选择,但因为触发不了hover事件,button的样式也没变化,就不知道当前选择了哪个,焦点在哪个选项上,这显然时无法接受的。我也没看源码和google是不是有其他简单的方式处理,打开电脑直接莽也不知道是不是把简单问题复杂化了...

weixin_39564368的博客 986

onNavigationBarButtonTap 监听原生标题栏按钮点击事件

onNavigationBarButtonTap 监听原生标题栏按钮点击事件

qq_45500519的博客 6763

微信小程序 button按钮怎么触发事件? bindtap语法怎么使用?

在前端网页中我们需要触发一个事件如果按钮点击后调用函数,文本、图片、链接被点击后调用一个函数一个事件,我们都知道用click,可是微信小程序中的click是不存在的,他怎么才能和网页中一样的使用click的呢?这时候有人肯定会问,我不是来学习click的怎么教我bindtap语法使用了?其实不然,bindtap是微信小程序中的onclick鼠标点击事件在小程序中,不存在HTMLZ中的onclick鼠标点击事件,而是通过tap事件来响应用户的触摸行为。①通过bindtap。

贼厉害 1万+

Button按钮的几种点击事件的写法

第一种;自定义内部类实现OnClickListener接口。 public class MainActivity extends AppCompatActivity { private Button bt; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(

嘿,你的益达。 2万+

view-ui中u-button无法使用@tap

今天工作用到了view-ui中的验证码倒计时组件VerificationCode,1.X版本的,直接使用它文档的中的代码,显示在页面中,只能在这个按钮中的左上角使用,而且点击的区域很小,后来发现它代码中button这个标签的问题,然后改了它的单击触发为@click就可以了,具体原理没有找到. <u-toast ref="uToast"></u-toast> <u-verification-code :seconds="s...

m0_61204947的博客 654
上一篇: OSX安装meteor时候CURL报SSL证书无效,curl: (60) SSL certificate problem: Invalid certificate chain
下一篇: cordova 直接安装插件超时,使用npm安装
马克的大菠萝
博客等级 码龄20年 40粉丝 41原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值