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 相关文章推荐
jQuery源码分析-03构造jQuery对象-源码结构和核心函数
Nov 14 Javascript
巧用replace将文字表情替换为图片
Apr 17 Javascript
浅谈EasyUI中Treegrid节点的删除
Mar 01 Javascript
JavaScript地理位置信息API
Jun 11 Javascript
JS实现的模仿QQ头像资料卡显示与隐藏效果
Apr 07 Javascript
javascript数据结构之串的概念与用法分析
Apr 12 Javascript
js字符限制(字符截取) 一个中文汉字算两个字符
Sep 12 Javascript
Angular实现的内置过滤器orderBy排序与模糊查询功能示例
Dec 29 Javascript
微信小程序车牌号码模拟键盘输入功能的实现代码
Nov 11 Javascript
Vue中用props给data赋初始值遇到的问题解决
Nov 27 Javascript
基于layui的table插件进行复选框联动功能的实现方法
Sep 19 Javascript
详解JavaScript执行模型
Nov 16 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
Views rows style模板重写代码
2011/05/16 PHP
PHP删除非空目录的函数代码小结
2013/02/28 PHP
使用淘宝IP库获取用户ip地理位置
2013/10/27 PHP
PHP递归删除目录几个代码实例
2014/04/21 PHP
php把大写命名转换成下划线分割命名
2015/04/27 PHP
关于php 高并发解决的一点思路
2017/04/16 PHP
由JavaScript中call()方法引发的对面向对象继承机制call的思考
2011/09/12 Javascript
巧用js提交表单轻松解决一个页面有多个提交按钮
2013/11/17 Javascript
javascript trim函数在IE下不能用的解决方法
2014/09/12 Javascript
DOM基础教程之使用DOM控制表格
2015/01/20 Javascript
浅谈Javascript中substr和substring的区别
2015/09/30 Javascript
JS实现从顶部下拉显示的带动画QQ客服特效代码
2015/10/24 Javascript
Javascript获取随机数的实现方法
2016/06/22 Javascript
Express+Nodejs 下的登录拦截实现代码
2017/07/01 NodeJs
微信小程序 数据绑定及运算的简单实例
2017/09/20 Javascript
浅谈FastClick 填坑及源码解析
2018/03/02 Javascript
解决layui数据表格table的横向滚动条显示问题
2019/09/04 Javascript
Python中使用tarfile压缩、解压tar归档文件示例
2015/04/05 Python
python如何通过protobuf实现rpc
2016/03/06 Python
Python实现简单字典树的方法
2016/04/29 Python
回调函数的意义以及python实现实例
2017/06/20 Python
Python发送http请求解析返回json的实例
2018/03/26 Python
在PyCharm环境中使用Jupyter Notebook的两种方法总结
2018/05/24 Python
对numpy.append()里的axis的用法详解
2018/06/28 Python
python实现高斯(Gauss)迭代法的例子
2019/11/20 Python
通过实例解析python subprocess模块原理及用法
2020/10/10 Python
python 基于opencv操作摄像头
2020/12/24 Python
详解如何用canvas画一个微笑的表情
2019/03/14 HTML / CSS
HTML5 Canvas的事件处理介绍
2015/04/24 HTML / CSS
纽约的奢华内衣店:Journelle
2016/07/29 全球购物
聊城大学毕业生自荐书
2014/02/01 职场文书
给校长的建议书
2014/03/12 职场文书
欢迎横幅标语
2014/06/17 职场文书
个人典型事迹材料
2014/12/30 职场文书
人生感悟经典句子
2019/08/20 职场文书
使用CSS实现六边形的图片效果
2022/08/05 HTML / CSS