jQuery:delegate中select()不起作用的解决方法(实例讲解)


Posted in Javascript onJanuary 26, 2014

jQuery有一个很好用的delegate(事件委派)功能,可以给当前以及将来(动态添加)的元素绑定一个事件处理函数。

比如下面的例子,动态添加一个输入文本框后,我想让所有文本框(不管是不是动态添加的)在获取焦点时,自动转大写。

<!doctype html>
<html>
<head>
    <title>delegate测试</title>
 <script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.6.js"></script>
 <style type="text/css">
*{padding:0;margin:0;list-style:none;margin:5px} 
 </style>
 <script type="text/javascript">
//动态添加一行文本输入框
function addInput(){ 
 $("#ulTarget").append("<li><input type=\"text\" value=\"aaaaaa\"/></li>"); 
}

$().ready(function(){
 $("#ulTarget").delegate(":text","focus",function(){
$(this).val($(this).val().toUpperCase());
 }); 
})
 </script>
</head>
<body>
  <ul id="ulTarget">
 <li><input type="text" value="123456abc"/></li>
 <li><input type="text" value="123456abc"/></li>
 <li><input type="text" value="123456abc"/></li>
 <li><input type="text" value="123456abc"/></li>
  </ul>   
  <button id="btnAdd" onclick="addInput()">add input</button> 
</body>
</html>

接下来,我还想加点小功能,在获取焦点时,还要让文本框自动全选。
$().ready(function(){
 $("#ulTarget").delegate(":text","focus",function(){
$(this).val($(this).val().toUpperCase()).select();
 }); 
}) 

但是实际测下来,.select()死活就是不起作用,无奈请出setTimeout
$().ready(function(){
 $("#ulTarget").delegate(":text","focus",function(){
var jqObj = $(this);
jqObj.val(jqObj.val().toUpperCase());
setTimeout(function(){jqObj.select();},100);
 }); 
}) 

解决了.
Javascript 相关文章推荐
asp.net 30分钟掌握无刷新 Repeater
Sep 16 Javascript
jQuery快速上手:写jQuery与直接写JS的区别详细解析
Aug 26 Javascript
Js获取数组最大和最小值示例代码
Oct 29 Javascript
使用documentElement正确取得当前可见区域的大小
Jul 25 Javascript
javascript基础语法——全面理解变量和标识符
Jun 02 Javascript
JS实现n秒后自动跳转的两种方法
Nov 30 Javascript
常用原生js自定义函数总结
Nov 20 Javascript
JavaScript实现带有子菜单和控件的slider轮播图效果
Nov 01 Javascript
浅析JS中回调函数及用法
Jul 25 Javascript
解决vue的变量在settimeout内部效果失效的问题
Aug 30 Javascript
JS选取DOM元素常见操作方法实例分析
Dec 10 Javascript
使用vuex-persistedstate本地存储vuex
Apr 29 Vue.js
javascript:FF/Chrome与IE动态加载元素的区别说明
Jan 26 #Javascript
js中的时间转换—毫秒转换成日期时间的示例代码
Jan 26 #Javascript
JS将所有对象s的属性复制给对象r(原生js+jquery)
Jan 25 #Javascript
手机平板等移动端适配跳转URL的js代码
Jan 25 #Javascript
Extjs中RowExpander控件的默认展开问题示例探讨
Jan 24 #Javascript
jquery批量设置属性readonly和disabled的方法
Jan 24 #Javascript
jquery 通过name快速取值示例
Jan 24 #Javascript
You might like
让你的WINDOWS同时支持MYSQL4,MYSQL4.1,MYSQL5X
2006/12/06 PHP
smarty学习笔记之常见代码段用法总结
2016/03/19 PHP
PHP实现权限管理功能示例
2017/09/22 PHP
php 下 html5 XHR2 + FormData + File API 上传文件操作实例分析
2020/02/28 PHP
重写javascript中window.confirm的行为
2012/10/21 Javascript
JS验证日期的格式YYYY-mm-dd 具体实现
2013/06/29 Javascript
Jquery显示和隐藏元素或设为只读(含Ligerui的控件禁用,实例说明介绍)
2013/07/09 Javascript
ExtJS 刷新后如何默认选中刷新前最后一次选中的节点
2014/04/03 Javascript
JQuery中使文本框获得焦点的方法实例分析
2015/02/28 Javascript
javascript中利用柯里化函数实现bind方法
2016/04/29 Javascript
jQuery验证插件validate使用方法详解
2020/09/13 Javascript
javascript与jquery动态创建html元素示例
2016/07/25 Javascript
实例解析js中try、catch、finally的执行规则
2017/02/24 Javascript
ES6新数据结构Set与WeakSet用法分析
2017/03/31 Javascript
你有必要知道的10个JavaScript难点
2017/07/25 Javascript
Angular在模板驱动表单中自定义校验器的方法
2017/08/09 Javascript
jquery鼠标悬停导航下划线滑出效果
2017/09/29 jQuery
使用原生js封装的ajax实例(兼容jsonp)
2017/10/12 Javascript
Bootstrap table中toolbar新增条件查询及refresh参数使用方法
2018/05/18 Javascript
小试小程序云开发(小结)
2019/06/06 Javascript
p5.js实现故宫橘猫赏秋图动画
2019/10/23 Javascript
使用Python标准库中的wave模块绘制乐谱的简单教程
2015/03/30 Python
python 工具 字符串转numpy浮点数组的实现
2020/03/14 Python
Python批量获取并保存手机号归属地和运营商的示例
2020/10/09 Python
CSS3制作圆角图片和椭圆形图片
2016/07/08 HTML / CSS
美国东北部户外服装和设备零售商:Eastern Mountain Sports
2016/10/05 全球购物
美国知名女性服饰品牌:New York & Company
2017/03/23 全球购物
台湾网友喜爱的综合型网路购物商城:Yahoo! 奇摩购物中心
2018/03/10 全球购物
班主任班级寄语大全
2014/04/04 职场文书
门前三包责任书
2014/04/15 职场文书
六年级学生评语
2014/04/22 职场文书
永不妥协观后感
2015/06/10 职场文书
2015中学教学工作总结
2015/07/22 职场文书
《索溪峪的野》教学反思
2016/02/19 职场文书
优秀范文:《但愿人长久》教学反思3篇
2019/10/24 职场文书
Kubernetes部署实例并配置Deployment、网络映射、副本集
2022/04/01 Servers