jQuery setTimeout传递字符串参数报错的解决方法


Posted in Javascript onJune 09, 2014

当你打算调用一些jQuery代码显示隐藏的一个元素,并调用setTimeout()在一段延时之后设置其HTML的内容:

整个页面的代码是这样的.

<span style="font-size:18px;"><html> 
<head> 
<title></title> 
</head> 
<body> 
<a href="#" id='heihei' onclick="showNext('I am veinei ')">show next</a> 
<a href="#" id="log" style="display:none" >yes,I am the next </a> 
<script type="text/javascript" src="jquery-1.10.2.min.js"></script> 
<script type="text/javascript"> 
function showNext(text){ 
setTimeout("$('#log').show().text(text)",1000); 
} 
</script> 
</body> 
</html> 
</span>

.show()确实调用成功了.但是.text()调用失败了.console显示 text未定义.

对于这个问题,我确实没有找到更好的答案...我想是不是jQuery对这个传入setTimeout()函数的内容做了修改导致变量失效.

我紧接着做了下一个实验.

<span style="font-size:18px;"><html> 
<head> 
<title></title> 
</head> 
<body> 
<a href="#" id='heihei' onclick="showNext('I am veinei ')">show next</a> 
<a href="#" id="log" style="display:none" >yes,I am the next </a> 
<script type="text/javascript" src="jquery-1.10.2.min.js"></script> 
<script type="text/javascript"> 
function showNext(text){ 
setTimeout("alert(text)",1000); 
} 
</script> 
</body> 
</html> 
</span>

我要看看是不是确实是jQuery出了问题.得到的是同样的错误.

后来找了本书看了看.发现了问题的所在.

setTimeout() 接受一个字符串参数时,它执行于全局作用域,也就是说,它位于任何函数之外.最简单的修复手段就是使用一个局部函数(匿名函数)来解决这个问题.

<span style="font-size:18px;"><html> 
<head> 
<title></title> 
</head> 
<body> 
<a href="#" id='heihei' onclick="showNext('I am veinei ')">show next</a> 
<a href="#" id="log" style="display:none" >yes,I am the next </a> 
<script type="text/javascript" src="jquery-1.10.2.min.js"></script> 
<script type="text/javascript"> 
function showNext(text){ 
setTimeout(function(){$('#log').show().text(text);},1000); 
} 
</script> 
</body> 
</html> 
</span>

成功解决这个问题.
Javascript 相关文章推荐
在JavaScript中使用inline函数的问题
Mar 08 Javascript
JavaScript解析URL参数示例代码
Aug 12 Javascript
Javascript获取HTML静态页面参数传递值示例
Aug 18 Javascript
CSS+jQuery实现的一个放大缩小动画效果
Sep 24 Javascript
多种方法实现load加载完成后把图片一次性显示出来
Feb 19 Javascript
jQuery实现单击按钮遮罩弹出对话框(仿天猫的删除对话框)
Apr 10 Javascript
学习使用bootstrap基本控件(table、form、button)
Apr 12 Javascript
js数组的五种迭代方法及两种归并方法(推荐)
Jun 14 Javascript
react.js使用webpack搭配环境的入门教程
Aug 14 Javascript
vue中img src 动态加载本地json的图片路径写法
Apr 25 Javascript
layui复选框限制选择个数的方法
Sep 18 Javascript
在antd Form表单中select设置初始值操作
Nov 02 Javascript
js去除输入框中所有的空格和禁止输入空格的方法
Jun 09 #Javascript
Node.js(安装,启动,测试)
Jun 09 #Javascript
关于JS数组追加数组采用push.apply的问题
Jun 09 #Javascript
javascript浏览器兼容教程之事件处理
Jun 09 #Javascript
jQuery学习笔记之toArray()
Jun 09 #Javascript
jQuery学习笔记之jQuery原型属性和方法
Jun 09 #Javascript
jQuery简易图片放大特效示例代码
Jun 09 #Javascript
You might like
截获网站title标签之家内容的例子
2006/10/09 PHP
网络资源
2006/10/09 PHP
数字转英文
2006/12/06 PHP
使用PHPMYADMIN操作mysql数据库添加新用户和数据库的方法
2010/04/02 PHP
使用phpQuery采集网页的方法
2013/11/13 PHP
ThinkPHP后台首页index使用frameset时的注意事项分析
2014/08/22 PHP
json-lib出现There is a cycle in the hierarchy解决办法
2010/02/24 Javascript
javascript自执行函数之伪命名空间封装法
2010/12/25 Javascript
jQuery 事件的命名空间简单了解
2013/11/22 Javascript
Javascript实现的常用算法(如冒泡、快速、鸽巢、奇偶等)
2014/04/29 Javascript
javascript设计模式之中介者模式Mediator
2014/12/30 Javascript
js中hash和ico的关联分析
2015/02/05 Javascript
第一次接触Bootstrap框架
2016/10/24 Javascript
jQuery实现select模糊查询(反射机制)
2017/01/14 Javascript
关于iframe跨域POST提交的方法示例
2017/01/15 Javascript
easyui datagrid 表格中操作栏 按钮图标不显示的解决方法
2017/07/27 Javascript
浅谈Vue.js应用的四种AJAX请求数据模式
2017/08/30 Javascript
vue2.x select2 指令封装详解
2017/10/12 Javascript
vue.js做一个简单的编辑菜谱功能
2018/05/08 Javascript
Bootstrap导航菜单点击后无法自动添加active的处理方法
2018/08/10 Javascript
使用JS判断页面是首次被加载还是刷新
2019/05/26 Javascript
Node爬取大批量文件的方法示例
2019/06/28 Javascript
vue.js+element 默认提示中英文操作
2020/11/11 Javascript
[55:03]完美世界DOTA2联赛PWL S2 LBZS vs FTD.C 第二场 11.20
2020/11/20 DOTA
python生成密码字典的方法
2018/07/06 Python
实例详解Python装饰器与闭包
2019/07/29 Python
使用Python为中秋节绘制一块美味的月饼
2019/09/11 Python
解决Python import .pyd 可能遇到路径的问题
2021/03/04 Python
世界上最好的精品店:Shoptiques
2018/02/05 全球购物
固特异美国在线轮胎店:Goodyear Tire
2019/02/23 全球购物
真正的英国宝藏:Mappin & Webb
2019/05/05 全球购物
文案策划专业自荐信
2014/07/07 职场文书
汽车转让协议书范本
2014/12/07 职场文书
七年级写作指导之游记作文
2019/10/07 职场文书
读《解忧杂货店》有感:请相信一切都是最好的安排
2019/11/07 职场文书
简单介绍 http请求响应参数、无连接无状态、MIME、状态码、端口、telnet、curl
2021/03/31 HTML / CSS