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 相关文章推荐
event对象的方法 兼容多浏览器
Jun 27 Javascript
利用window.name实现windowStorage代码分享
Jan 02 Javascript
jQuery实现可展开合拢的手风琴面板菜单
Sep 15 Javascript
浅谈JS中逗号运算符的用法
Jun 12 Javascript
微信小程序 wx.uploadFile无法上传解决办法
Dec 14 Javascript
angularjs ocLazyLoad分步加载js文件实例
Jan 17 Javascript
基于Bootstrap的标签页组件及bootstrap-tab使用说明
Jul 25 Javascript
基于jstree使用AJAX请求获取数据形成树
Aug 29 Javascript
layui table 表格上添加日期控件的两种方法
Sep 28 Javascript
Vue实现返回顶部按钮实例代码
Oct 21 Javascript
javascript 数组(list)添加/删除的实现
Dec 17 Javascript
vuex的使用和简易实现
Jan 07 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
PHILIPS L4X25T电路分析和打理
2021/03/02 无线电
php正则过滤html标签、空格、换行符的代码(附说明)
2010/10/25 PHP
php中session过期时间设置及session回收机制介绍
2014/05/05 PHP
php微信公众号开发之音乐信息
2018/10/20 PHP
php下的原生ajax请求用法实例分析
2020/02/28 PHP
Extjs的FileUploadField文件上传出现了两个上传按钮
2014/04/29 Javascript
js调试系列 初识控制台
2014/06/18 Javascript
jquery判断至少有一个checkbox被选中的方法
2015/06/05 Javascript
js实现异步循环实现代码
2016/02/16 Javascript
Javascript中的prototype与继承
2017/02/06 Javascript
vue修改vue项目运行端口号的方法
2017/08/04 Javascript
红黑树的插入详解及Javascript实现方法示例
2018/03/26 Javascript
小程序从手动埋点到自动埋点的实现方法
2019/01/24 Javascript
vue实现简单图片上传
2020/06/30 Javascript
Element图表初始大小及窗口自适应实现
2020/07/10 Javascript
树莓派中python获取GY-85九轴模块信息示例
2013/12/05 Python
python模拟enum枚举类型的方法小结
2015/04/30 Python
Python实现简单过滤文本段的方法
2017/05/24 Python
高效使用Python字典的清单
2018/04/04 Python
python实现根据指定字符截取对应的行的内容方法
2018/10/23 Python
python3 tcp的粘包现象和解决办法解析
2019/12/09 Python
Mac中PyCharm配置Anaconda环境的方法
2020/03/04 Python
jupyter lab的目录调整及设置默认浏览器为chrome的方法
2020/04/10 Python
Python函数参数分类原理详解
2020/05/28 Python
matplotlib 多个图像共用一个colorbar的实现示例
2020/09/10 Python
python 如何设置守护进程
2020/10/29 Python
通过实例解析python and和or使用方法
2020/11/14 Python
基于Html5 canvas实现裁剪图片和马赛克功能及又拍云上传图片 功能
2019/07/09 HTML / CSS
Html5+CSS3+EL表达式问题小结
2020/12/19 HTML / CSS
英国时尚高尔夫服装购物网站:Trendy Golf
2020/01/10 全球购物
乡镇党的群众路线对照检查材料
2014/09/24 职场文书
大学生违纪检讨书范文
2015/05/07 职场文书
2015年基层党建工作汇报材料
2015/06/25 职场文书
创业计划书之宠物店
2019/09/19 职场文书
Jupyter Notebook 如何修改字体和大小以及更改字体样式
2021/06/03 Python
pd.DataFrame中的几种索引变换的实现
2022/06/16 Python