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开发包大全整理
Dec 22 Javascript
js控制的回到页面顶端goTop的代码实现
Mar 20 Javascript
Javascript 中 null、NaN和undefined的区别总结
Apr 10 Javascript
JS保存、读取、换行、转Json报错处理方法
Jun 14 Javascript
javascript实现简单的贪吃蛇游戏
Mar 31 Javascript
理解jquery事件冒泡
Jan 03 Javascript
快速解决js开发下拉框中blur与click冲突
Oct 10 Javascript
基于JavaScript实现随机颜色输入框
Dec 10 Javascript
angularjs封装$http为factory的方法
May 18 Javascript
Vue实现带进度条的文件拖动上传功能
Feb 23 Javascript
JS数组的高级使用方法示例小结
Mar 14 Javascript
Element Dialog对话框的使用示例
Jul 26 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获取表单textarea数据中的换行问题
2010/09/10 PHP
php编程实现获取excel文档内容的代码实例
2011/06/28 PHP
PHP中浮点数计算比较及取整不准确的解决方法
2015/01/09 PHP
两款万能的php分页类
2015/11/12 PHP
PHP实现长文章分页实例代码(附源码)
2016/02/03 PHP
php判断手机浏览还是web浏览,并执行相应的动作简单实例
2016/07/28 PHP
php简单随机字符串生成方法示例
2017/04/19 PHP
jquery 选择器部分整理
2009/10/28 Javascript
jQuery选择器简明总结(含用法实例,一目了然)
2014/04/25 Javascript
jquery中获得元素尺寸和坐标的方法整理
2014/05/18 Javascript
JavaScript中window.showModalDialog()用法详解
2014/12/18 Javascript
JS动态创建DOM元素的方法
2015/06/09 Javascript
JavaScript实现横向滑出的多级菜单效果
2015/10/09 Javascript
开启Javascript中apply、call、bind的用法之旅模式
2015/10/28 Javascript
详解javascript实现瀑布流列式布局
2016/01/29 Javascript
JS组件Bootstrap实现图片轮播效果
2016/05/16 Javascript
AngularJS的依赖注入实例分析(使用module和injector)
2017/01/19 Javascript
angular动态删除ng-repaeat添加的dom节点的方法
2017/07/20 Javascript
前端js中的事件循环eventloop机制详解
2019/05/15 Javascript
JavaScript的Proxy可以做哪些有意思的事儿
2019/06/15 Javascript
js this 绑定机制深入详解
2020/04/30 Javascript
使用Element的InfiniteScroll 无限滚动组件报错的解决
2020/07/27 Javascript
python网络编程学习笔记(五):socket的一些补充
2014/06/09 Python
对django xadmin自定义菜单的实例详解
2019/01/03 Python
浅谈python多线程和多线程变量共享问题介绍
2020/04/17 Python
Python使用cn2an实现中文数字与阿拉伯数字的相互转换
2021/03/02 Python
Canvas实现贝赛尔曲线轨迹动画的示例代码
2019/04/25 HTML / CSS
Html5导航栏吸顶方案原理与对比实现
2020/06/10 HTML / CSS
家庭睡衣和家庭用品:Little Blue House
2018/03/18 全球购物
个性大学生自我评价
2013/12/04 职场文书
产品包装策划方案
2014/05/18 职场文书
导游词格式
2015/02/13 职场文书
道歉情书大全
2015/05/12 职场文书
乔迁新居祝福语
2019/11/04 职场文书
Redis如何一键部署脚本
2021/04/12 Redis
MySQL 表空间碎片的概念及相关问题解决
2021/05/07 MySQL