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 相关文章推荐
如何调试异步加载页面里包含的js文件
Oct 30 Javascript
angularJS中$apply()方法详解
Jan 07 Javascript
原生JS和JQuery动态添加、删除表格行的方法
May 28 Javascript
js判断子窗体是否关闭的方法
Aug 11 Javascript
jquery表单插件form使用方法详解
Jan 20 Javascript
微信小程序scroll-view实现横向滚动和上拉加载示例
Mar 06 Javascript
微信小程序实现移动端滑动分页效果(ajax)
Jun 13 Javascript
浅谈angular4.0中路由传递参数、获取参数最nice的写法
Mar 12 Javascript
vue-cli项目中使用echarts图表实例
Oct 22 Javascript
vue组件间的参数传递实例详解
Apr 26 Javascript
手把手15分钟搭一个企业级脚手架
Sep 16 Javascript
通过GASP让vue实现动态效果实例代码详解
Nov 24 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
WIN98下Apache1.3.14+PHP4.0.4的安装
2006/10/09 PHP
PHP中MD5函数使用实例代码
2008/06/07 PHP
PHP 读取文件的正确方法
2009/04/29 PHP
php字符串按照单词进行反转的方法
2015/03/14 PHP
Smarty使用自定义资源的方法
2015/08/08 PHP
PHP简单实现防止SQL注入的方法
2018/03/13 PHP
PHP终止脚本运行三种实现方法详解
2020/09/01 PHP
用JQuery 实现的自定义对话框
2007/03/24 Javascript
24款非常有用的 jQuery 插件分享
2011/04/06 Javascript
JavaScript的事件绑定(方便不支持js的时候)
2013/10/01 Javascript
浅谈Javascript 执行顺序
2013/12/18 Javascript
利用JQuery制作符合Web标准的QQ弹出消息
2014/01/14 Javascript
js图片延迟技术一般的思路与示例
2014/03/20 Javascript
jQuery过滤选择器:not()方法使用介绍
2014/04/20 Javascript
nodejs中操作mysql数据库示例
2014/12/20 NodeJs
探讨:JavaScript ECAMScript5 新特性之get/set访问器
2016/05/05 Javascript
在Vue-cli里应用Vuex的state和mutations方法
2018/09/16 Javascript
vue单页面在微信下只能分享落地页的解决方案
2019/04/15 Javascript
vue elementUI 表单校验功能之数组多层嵌套
2019/06/04 Javascript
解决layui调用自定义方法提示未定义的问题
2019/09/14 Javascript
[05:05]DOTA2亚洲邀请赛 战队出场仪式
2015/02/07 DOTA
[06:07]DOTA2-DPC中国联赛 正赛 Ehome vs VG 选手采访
2021/03/11 DOTA
socket + select 完成伪并发操作的实例
2017/08/15 Python
使用python实现简单五子棋游戏
2019/06/18 Python
django的分页器Paginator 从django中导入类
2019/07/25 Python
Python线程指南分享
2019/11/19 Python
Python发送邮件封装实现过程详解
2020/05/09 Python
Django Session和Cookie分别实现记住用户登录状态操作
2020/07/02 Python
Python通过递归函数输出嵌套列表元素
2020/10/15 Python
使用Pytorch搭建模型的步骤
2020/11/16 Python
中国最大隐形眼镜网上商城:视客眼镜网
2016/10/30 全球购物
控制工程专业个人求职信
2013/09/25 职场文书
心得体会范文
2014/01/04 职场文书
办护照工作证明范本
2014/01/14 职场文书
学习心得体会
2019/06/20 职场文书
Redis监控工具RedisInsight安装与使用
2022/03/21 Redis