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 相关文章推荐
判断iframe是否加载完成的完美方法
Jan 07 Javascript
JavaScript 面向对象之命名空间
May 04 Javascript
extjs tabpanel限制选项卡数量实现思路及代码
Apr 02 Javascript
JavaScript italics方法入门实例(把字符串显示为斜体)
Oct 17 Javascript
javascript匀速运动实现方法分析
Jan 08 Javascript
JavaScript中windows.open()、windows.close()方法详解
Jul 28 Javascript
基于jQuery实现火焰灯效果导航菜单
Jan 04 Javascript
D3.js中强制异步文件读取同步的几种方法
Feb 06 Javascript
深入解析Vue 组件命名那些事
Jul 18 Javascript
vue项目中使用axios上传图片等文件操作
Nov 02 Javascript
详解tween.js 中文使用指南
Jan 05 Javascript
JavaScript队列结构Queue实现过程解析
Mar 07 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
php新建文件自动编号的思路与实现
2011/06/27 PHP
PHP设计模式之抽象工厂模式实例分析
2019/03/25 PHP
javascript 显示当前系统时间代码
2009/12/28 Javascript
juqery 学习之三 选择器 可见性 元素属性
2010/11/25 Javascript
基于jquery实现的一个选择中国大学的弹框 (数据、步骤、代码)
2012/07/26 Javascript
快速解决jquery之get缓存问题的最简单方法介绍
2013/12/19 Javascript
Iframe实现跨浏览器自适应高度解决方法
2014/09/02 Javascript
js实现鼠标移到链接文字弹出一个提示层的方法
2015/05/11 Javascript
jQuery实现鼠标划过添加和删除class的方法
2015/06/26 Javascript
js获取及修改网页背景色和字体色的方法
2015/12/29 Javascript
实例讲解JS中setTimeout()的用法
2016/01/28 Javascript
微信小程序 开发经验整理
2017/02/15 Javascript
JavaScript实现经纬度转换成地址功能
2017/03/28 Javascript
浅谈vue中改elementUI默认样式引发的static与assets的区别
2018/02/03 Javascript
详解如何快速配置webpack多入口脚手架
2018/12/28 Javascript
如何实现echarts markline标签名显示自己想要的
2020/07/20 Javascript
Vue 3.0中jsx语法的使用
2020/11/13 Javascript
[57:55]EG vs Fnatic 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
Python获取电脑硬件信息及状态的实现方法
2014/08/29 Python
python执行get提交的方法
2015/04/29 Python
收藏整理的一些Python常用方法和技巧
2015/05/18 Python
基于Python的文件类型和字符串详解
2017/12/21 Python
Python3.6连接Oracle数据库的方法详解
2018/05/18 Python
Python list列表中删除多个重复元素操作示例
2019/02/27 Python
matplotlib实现显示伪彩色图像及色度条
2019/12/07 Python
python中if嵌套命令实例讲解
2021/02/25 Python
全球第二大家装零售商:Lowe’s
2018/01/13 全球购物
Eton丹麦官网:精美的男式衬衫
2020/05/27 全球购物
新加坡鲜花速递/新加坡网上花店:Ferns N Petals
2020/08/29 全球购物
Solaris操作系统的线程机制
2012/12/23 面试题
艺术应用与设计个人的自我评价
2013/11/23 职场文书
保安部任务及岗位职责
2014/02/25 职场文书
法定代表人身份证明书
2015/06/18 职场文书
领导干部学习三严三实心得体会
2016/01/05 职场文书
上个世纪50年代的可穿戴技术:无线电帽子
2022/02/18 无线电
一次Mysql update sql不当引起的生产故障记录
2022/04/01 MySQL