为select的option绑定键盘事件
1. 目的
可以使用快捷键1、2、3、4等自动选中select框对应的option
2. 代码
<select id="selectItem" class="form-control">
<option>北京</option>
<option>上海</option>
<option>广州</option>
<option>深圳</option>
</select>
$("#selectItem").focus(function() {
// 动态设置size支持option的事件监听
this.size = this.children.length;
}).blur(function() {
this.size = 1;
});
$("#selectItem option").click(function() {
$("#selectItem option").each(function() {
$(this).removeAttr("selected");
});
$(this).attr("selected", true);
$("#selectItem").blur();
});
$(document).keydown(function(event) {
var key = event.which; // 获取按键的ascii码
var num = key - 48; // 获取对应的数字
if (num >= 1 && num <= 4) { // 只有4个下拉框,只处理1-4
var count = 1; // 计数
$("#selectItem option").each(function() {
if (count == num) {
$("#selectItem").val($(this).text());
$(this).attr("selected", true);
$("#selectItem").blur();
} else {
$(this).removeAttr("selected");
}
count++;
});
}
});
当select是动态生成的时候,绑定事件不生效,可以使用事件冒泡实现事件绑定
$("body").delegate("#selectItem", "focus", function() {
this.size = this.children.length;
}).delegate("#selectItem", "blur", function() {
this.size = 1;
}).delegate("#selectItem option", "click", function() {
$("#selectItem option").each(function() {
$(this).removeAttr("selected");
});
$(this).attr("selected", true);
$("#selectItem").blur();
});
$(document).keydown(function(event) {
var key = event.which; // 获取按键的ascii码
var num = key - 48; // 获取对应的数字
if (num >= 1 && num <= 4) { // 只有4个下拉框,只处理1-4
var count = 1; // 计数
$("#selectItem option").each(function() {
if (count == num) {
$("#selectItem").val($(this).text());
$(this).attr("selected", true);
$("#selectItem").blur();
} else {
$(this).removeAttr("selected");
}
count++;
});
}
});
为select的option绑定键盘事件的更多相关文章
- html5标签div可绑定键盘事件方法
我们知道键盘事件一般用在input这些可以获取焦点的元素上,但是作为div,尽管官方上说可以绑定键盘事件,但是我写了以后发现不生效,于是找答案. 果然,找到了一个神器:tabindex 它是html5 ...
- select中option的onclick事件失效
html: <select id="pageSelect"> <option value="1" selected onclick=" ...
- easyui给select控件绑定change事件
一般的做法是使用jQuery来绑定,例如: $("#id").change(function(){ alert("change事件绑定"); }); 当给sel ...
- 让 select 的 option 标签支持事件监听(如复制操作)
这标题,让option支持事件监听,应该不难的呀,有什么好讲的? 其实还是有的,默认在浏览器代码是无法直接对option标签进行操作的,不仅包括JS事件监听,还是CSS样式设置 查了一些资料,姑且认为 ...
- layui 触发 select 下option 被选择事件
1.找到值为某一个的元素 var S0 = 'dd[lay-value='+ level+']'; 2.给该元素注册点击事件 siblings(兄弟节点) $('select[name=\'leve ...
- js 绑定的键盘事件
在全局绑定键盘事件 document.onkeydown = function(event){ //在全局中绑定按下事件 var e = event || window.e; va ...
- javascript 键盘事件总结
原文:http://www.cnblogs.com/rubylouvre/archive/2009/08/20/1550526.html#2583814 在进入正题前,我们看一下浏览器对于键盘的一些默 ...
- vue添加页面键盘事件
我司开发项目,用的是vue+elementUI,做登陆页面的时候,点击enter键的时候要实现和点击登陆按钮一样的功能,所以就百度了一下,于是一通百度之后,就在点击按钮上面直接添加了@keyup.en ...
- js Dom为页面中的元素绑定键盘或鼠标事件
html鼠标事件 onload 页面加载 onclick 鼠标单击 onmouseover 鼠标移入 onmouseout 鼠标移出 onfocus 获取焦点 onblur 失去焦点 onchange ...
随机推荐
- 【spring cloud】spring cloud分布式服务eureka启动时报错:java.lang.NoSuchMethodError: org.springframework.boot.builder.SpringApplicationBuilder.<init>([Ljava/lang/Object;)V
spring cloud分布式服务eureka启动时报错:java.lang.NoSuchMethodError: org.springframework.boot.builder.SpringApp ...
- Sqlserver数据库还原.bak文件失败的两个问题
一.SQL Server数据库备份还原后,在数据库名称后会出现“受限制访问”字样 解决方案:将数据库限制访问改为:SINGLE_USER 数据库-->属性-->选项-->状 ...
- Bestreviewapp给iOS软件写评论赚钱
BestReviewApp 这是一个评论类的活动,网站上会提供App列表,在iTunes评论这些应用就能获得报酬.目前账号中的余额可通过PayPal或支付宝提取出来.BestReviewApp 开放的 ...
- synchronized-锁重入
public class MyThread5_synchronized1 { /** * 父子类同步必须 都 使用synchronized关键字 */ static class Main { publ ...
- iconv的安装和使用
一.Linux下iconv的安装包的下载页面http://www.gnu.org/software/libiconv/ $ ./configure --prefix=/usr/local$ make$ ...
- Nodejs全站开发学习系列 & 深入浅出Node学习笔记 & Spider抓取
https://course.tianmaying.com/node 这个系列的文章看起来很不错,值得学习一下. /Users/baidu/Documents/Data/Interview/Web-S ...
- uv计算
lightmap shadowmap heightmap 它们有一个自己的camera 对应cameraMatrix float3 TransfromToTextureCoord(float4 Pos ...
- 探寻C++最快的读取文件的方案
https://www.byvoid.com/blog/fast-readfile/ 在竞赛中,遇到大数据时,往往读文件成了程序运行速度的瓶颈,需要更快的读取方式.相信几乎所有的C++学习者都在cin ...
- App开发架构指南(谷歌官方文档译文)
这篇文章面向的是已经掌握app开发基本知识,想知道如何开发健壮app的读者. 注:本指南假设读者对 Android Framework 已经很熟悉.如果你还是app开发的新手,请查看 Getting ...
- [iOS开发] 使用Jenkins自动打包并上传至蒲公英
设置构建触发器 Poll SCM H/2 * * * * 设置 构建脚本 # #xodebuild & jenkins 自动构建并上传至pgyer.com #2017年5月9日 # #定义一些 ...