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下IE与FF兼容函数收集
Sep 17 Javascript
js DOM模型操作
Dec 28 Javascript
js字母大小写转换实现方法总结
Nov 13 Javascript
jQuery仿gmail实现fixed布局的方法
May 27 Javascript
JS实现合并两个数组并去除重复项只留一个的方法
Dec 17 Javascript
非常实用的vue导航钩子
Mar 20 Javascript
Node 升级到最新稳定版的方法分享
May 17 Javascript
fetch 如何实现请求数据
Dec 20 Javascript
JavaScript数据结构之栈实例用法
Jan 18 Javascript
Vue3.0结合bootstrap创建多页面应用
May 28 Javascript
你准备好迎接vue3.0了吗
Apr 28 Javascript
JavaScript十大取整方法实例教程
Dec 03 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获取网站域名和地址的代码
2008/08/17 PHP
DLL+ ActiveX控件+WEB页面调用例子
2010/08/07 Javascript
javascript中运用闭包和自执行函数解决大量的全局变量问题
2010/12/30 Javascript
Prototype源码浅析 String部分(三)之HTML字符串处理
2012/01/15 Javascript
获取div编辑框,textarea,input text的光标位置 兼容IE,FF和Chrome的方法介绍
2012/11/08 Javascript
JS对img标签进行优化使用onerror显示默认图像
2014/04/24 Javascript
使用jQuery实现验证上传图片的格式与大小
2014/12/03 Javascript
jquery.form.js实现将form提交转为ajax方式提交的方法
2015/04/07 Javascript
jQuery多文件异步上传带进度条实例代码
2016/08/16 Javascript
javascript宿主对象之window.navigator详解
2016/09/07 Javascript
AngularJS中的缓存使用
2017/01/11 Javascript
tween.js缓动补间动画算法示例
2018/02/13 Javascript
vue项目打包部署_nginx代理访问方法详解
2018/09/20 Javascript
js实现点击展开隐藏效果(实例代码)
2018/09/28 Javascript
微信小程序如何修改radio和checkbox的默认样式和图标
2019/07/24 Javascript
原生js实现无缝轮播图
2020/01/11 Javascript
使用vue-cli3+typescript的项目模板创建工程的教程
2020/02/28 Javascript
原生js实现随机点名
2020/07/05 Javascript
Vue项目打包编译优化方案
2020/09/16 Javascript
[02:53]DOTA2英雄昆卡基础教程
2013/11/25 DOTA
[07:09]DOTA2-DPC中国联赛 正赛 Ehome vs Elephant 选手采访
2021/03/11 DOTA
python函数缺省值与引用学习笔记分享
2013/02/10 Python
pyqt4教程之实现windows窗口小示例分享
2014/03/07 Python
仅用500行Python代码实现一个英文解析器的教程
2015/04/02 Python
python matplotlib画图库学习绘制常用的图
2019/03/19 Python
PyCharm无法识别PyQt5的2种解决方法,ModuleNotFoundError: No module named 'pyqt5'
2020/02/17 Python
详解Python3.8+PyQt5+pyqt5-tools+Pycharm配置详细教程
2020/11/02 Python
html通过canvas转成base64的方法
2019/07/18 HTML / CSS
美国彩妆品牌:Coastal Scents
2017/04/01 全球购物
欧舒丹加拿大官网:L’Occitane加拿大
2017/10/29 全球购物
说出数据连接池的工作机制是什么?
2013/04/19 面试题
项目经理任命书范本
2014/06/05 职场文书
大学毕业生推荐信
2014/07/09 职场文书
学生不参加考试检讨书
2015/02/19 职场文书
nginx location优先级的深入讲解
2021/03/31 Servers
css3 文字断裂效果
2022/04/22 HTML / CSS