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 相关文章推荐
JavaScript 关键字屏蔽实现函数
Aug 02 Javascript
js判断为空Null与字符串为空简写方法
Feb 24 Javascript
jquery实现下拉菜单的二级联动利用json对象从DB取值显示联动
Mar 27 Javascript
jquery form 加载数据示例
Apr 21 Javascript
ES6的新特性概览
Mar 10 Javascript
详解vue.js2.0父组件点击触发子组件方法
May 10 Javascript
angularjs下拉框空白的解决办法
Jun 20 Javascript
利用vue和element-ui设置表格内容分页的实例
Mar 02 Javascript
微信小程序使用for循环动态渲染页面操作示例
Dec 25 Javascript
VUE DEMO之模拟登录个人中心页面之间数据传值实例
Oct 31 Javascript
uni-app如何页面传参数的几种方法总结
Apr 28 Javascript
vue项目实现设置根据路由高亮对应的菜单项操作
Aug 06 Javascript
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
Yii中创建自己的Widget实例
2016/01/05 PHP
解决laravel-admin 自己新建页面里 js 需要刷新一次的问题
2019/10/03 PHP
使用jQuery动态加载js脚本文件的方法
2014/04/03 Javascript
js获取时间并实现字符串和时间戳之间的转换
2015/01/05 Javascript
通过伪协议解决父页面与iframe页面通信的问题
2015/04/05 Javascript
使用jQuery在对象中缓存选择器的简单方法
2015/06/30 Javascript
HTML5之WebSocket入门3 -通信模型socket.io
2015/08/21 Javascript
深入浅析NodeJs并发异步的回调处理
2015/12/21 NodeJs
jQuery版本升级踩坑大全
2016/01/12 Javascript
JS组件Bootstrap Table使用方法详解
2016/02/02 Javascript
javascript点击按钮实现隐藏显示切换效果
2016/02/03 Javascript
js验证手机号、密码、短信验证码代码工具类
2020/06/24 Javascript
Javascript实现base64的加密解密方法示例
2017/06/27 Javascript
Angular 2父子组件数据传递之@Input和@Output详解(下)
2017/07/05 Javascript
简单实现jQuery轮播效果
2017/08/18 jQuery
vue中使用props传值的方法
2019/05/08 Javascript
JavaScript鼠标拖拽事件详解
2020/04/03 Javascript
详解JS深拷贝与浅拷贝
2020/08/04 Javascript
基于openlayers实现角度测量功能
2020/09/28 Javascript
[10:21]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Aster 选手采访
2021/03/11 DOTA
用Python实现一个简单的能够发送带附件的邮件程序的教程
2015/04/08 Python
Python基于list的append和pop方法实现堆栈与队列功能示例
2017/07/24 Python
Python 私有化操作实例分析
2019/11/21 Python
Python 解析xml文件的示例
2020/09/29 Python
Python 实现进度条的六种方式
2021/01/06 Python
python 利用panda 实现列联表(交叉表)
2021/02/06 Python
Bonami斯洛伐克:购买家具和家居饰品
2019/07/02 全球购物
乌克兰移动电子产品和相关配件的在线商店:iTMag
2020/03/16 全球购物
DC Shoes俄罗斯官网:美国滑板鞋和服饰品牌
2020/08/19 全球购物
营销与策划应届生求职信
2013/11/04 职场文书
设计总监岗位职责
2013/12/07 职场文书
内业资料员岗位职责
2014/01/04 职场文书
初一英语教学反思
2014/01/11 职场文书
法人代表任命书范本
2014/06/05 职场文书
Go获取两个时区的时间差
2022/04/20 Golang
LyScript实现绕过反调试保护的示例详解
2022/08/14 Python