java 检测点击事件控件_iCheck控件ifClicked和ifChanged事件的讨论
前端环境:Jquery+Bootstrap,checkbox使用了iCheck
关于iCheck控件点击事件的处理,其中有两个相关事件ifClicked和ifChanged
经过实验发现,ifClicked是点击的时候触发,此时check状态还没变化
ifChanged是状态变化后触发。
也就是说,当点击checkbox的时候,触发顺序是:
ifClicked事件-->checkbox check状态变化-->ifChanged事件
如果有其他逻辑触发iCheck的.iCheck('check')和.iCheck('uncheck'),改变状态时,会直接触发ifChanged事件,不会触发ifClicked。
(备注:看网上也有人提出ifChanged事件在check状态变化之前触发(讨论链接:https://bbs.csdn.net/topics/391953382),我也不知道是怎么回事。这是我自己测试的结果,而且从ifChanged这个事件命名来看,也应该是在状态变化之后来触发的。)
假如我们需要某些关联操作,需要明确指定点击的时候才要触发某些事件(而不是状态变化的时候触发),但是点击的时候check状态又没有发生变化,此时获取状态是错误的。
上面提到的帖子里提到用setTimeout定时器人为模拟一个异步操作的方法。这个方法,也有弊端,时间间隔设定要恰当,否则点击速度太快,两次点击时间间隔小于设定的时间间隔,会出现状态异常。
帖子里还有一个方案:
self.on("ifClicked", function (ent) {
if($(self).is(":checked"))
//现在判断时若是选中的,点击完了就变成了未选中了
else
//这里判断是没选中,点击完了就变成选中了
})
这种方法适用于checkbox单独一个使用,一般的checkbox都是好多放在一个组里,此种方法判断就有点麻烦了。
我这里提出另外一个方法。使用ifClicked和ifChanged联合解决:
设定一个bool变量:iCheckBoxClickFlag记录是否被点击
当被点击的时候,触发ifClicked事件,iCheckBoxClickFlag设定为true
当触发ifChanged事件的时候,再根据iCheckBoxClickFlag的状态,判断是否是点击事件过来的。假如是,就执行自定义逻辑
//iCheckBox是否被点击
var iCheckBoxClickFlag = false;
//处理ifClicked
$("input:checkbox[name='city_cb']").on('ifClicked', function(event){
console.log('checkbox click');
iCheckBoxClickFlag=true;
});
//处理ifChanged
$("input:checkbox[name='city_cb']").on("ifChanged",function(){
console.log('checkbox changed...');
if(!iCheckBoxClickFlag){
return;
}
iCheckBoxClickFlag = false;
//自定义逻辑
}
java 检测点击事件控件_iCheck控件ifClicked和ifChanged事件的讨论相关推荐
- WPF,强制捕获鼠标事件,鼠标移出控件外依然可以执行强制捕获的鼠标事件
在WPF中,只有鼠标位置在某个控件上的时候才会触发该控件的鼠标事件. 例如,有两个控件都注册了MouseDown和MouseUp事件,在控件1上按下鼠标,不要放开,移动到控件2上再放开. 在这个过程中 ...
- 控件中一些常用的属性和事件
1.1常用基本属性 1)Name:表示控件的名称. 2)Enabled:表示控件是否可以对用户交互做出响应. 3)Font:表示控件中显示文字的字体格式,包括字体名称.字号以及是否以斜体.加粗和下划线 ...
- C#控件的创建、属性设置及事件注册
摘要:本文基于Visual studio 2019, 以按钮控件(Button)为例,认识控件的创建方式.属性设置及事件注册. 编程语言:C# 编程环境:Visual Studio 2019 目录 控 ...
- JAVA知识点梳理第四部分——Swing控件
JAVA整理知识点传送门: JAVA知识点拉理第一部分--常规知识 JAVA知识点梳理第二部分--接口.内部类.异常等等 JAVA知识点梳理第三部分--图形用户界面GUI部分 JAVA知识点梳理第四部 ...
- java调用ocx控件(ActiveX控件),SWT调用ocx(ActiveX)
java调用ocx控件(ActiveX控件),SWT调用ocx(ActiveX) 注 : OLE.OCX.ActiveX不进行过多阐述,简单理解就是插件,组件类 调用成功,即可展示ocx对应的窗口 ...
- java 地图控件_控件交互-与地图交互-开发指南-Android 地图SDK | 高德地图API
控件是指浮在地图图面上的一系列用于操作地图的组件,例如缩放按钮.指南针.定位按钮.比例尺等. UiSettings 类用于操控这些控件,以定制自己想要的视图效果.UiSettings 类对象的实例化需 ...
- java学习笔记(三):前端miniUI控件库入门
java学习笔记(三):前端miniUI控件库入门 最近在一家公司实习学习,一上来就需要学习了解相关的前端内容--miniUI.而这个内容自己本身并没有了解学习过,上手也是遇到了不少的问题,于是想把自 ...
- 如何设计一个 iOS 控件?(iOS 控件完全解析)
前言 一个控件从外在特征来说,主要是封装这几点: 交互方式 显示样式 数据使用 对外在特征的封装,能让我们在多种环境下达到 PM 对产品的要求,并且提到代码复用率,使维护工作保持在一个相对较小的范围内 ...
- 【 iOS 应用开发 】 UIKit 控件 ( 代码生成控件 | UIView 属性方法 | Storyboard | Bundle | Property List | 动画 | 图片内存优化 )
文章目录 一. 代码生成控件 1. 创建设置项目 ( 1 ) 创建项目 ( ① 选择 Create a new Xcode project | ② 创建 Single View Application ...
- iOS开发系列--触摸事件、手势识别、摇晃事件、耳机线控
-- iOS事件全面解析 概览 iPhone的成功很大一部分得益于它多点触摸的强大功能,乔布斯让人们认识到手机其实是可以不用按键和手写笔直接操作的,这不愧为一项伟大的设计.今天我们就针对iOS的触摸事 ...
最新文章
- Kafka Cluster元数据在客户端缓存采用的数据结构
- linux内核更新/修补程序,Ubuntu 18.04.3 LTS无需重启即可轻松修补Linux内核
- kvm架构服务器_顺应云计算变革大势,腾讯云全新星星海自研服务器真正为云而生...
- UltraTextEditor
- 使用telnet命令验证邮箱
- js获取input上传文件名和后缀
- python中二维列表的遍历方式(亲测)
- 数组转换成json key-value形式
- 第三次学JAVA再学不好就吃翔(part85)--静态导入
- 忘记 mysql 密码的取回方法
- 互联网晚报 | 9月28日 星期二 | 乐视手机宣布回归;小鹏汽车累计交付量突破10万台;苹果售出20亿部iPhone...
- flask mvc模式开发_Flask中文文档-转载
- UI登录表单使用模板素材
- mysql都有什么基本函数_【第七章】MySQL的基本函数
- 最强JAVA核心技术群
- 初学Linux (Linux_note)
- 梯度下降法中的参数学习速率如何选择
- 137_原始套接字_发送UDP数据,模仿他人飞秋给另一个飞秋客户端发送信息
- 计算机兴趣小组活动总结,兴趣小组活动总结优秀范文
- 让电脑自动开机、关机以及取消开机密码
热门文章
- 一文读懂哈希算法SHA256
- The Preliminary Contest for ICPC Asia Nanjing 2019
- 渗透测试之通道构建Cheat Sheet
- 解读全部二十三种设计模式(附测试代码)
- html的abbr标签,html中如何使用abbr标签
- 【沃顿商学院学习笔记】商业分析——Customer Analytics:04 规范性分析 Prescriptive Analytics
- kubernetes Auditing 实战
- Opencv多版本共存问题
- 问题:在vue中照片墙的照片数量超过限制数量后,要隐藏图片上传按钮,如何解决?
- Google提供Fastboot和ADB单独下载服务(转载)