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 自适应高度的Tab选项卡
Apr 05 Javascript
jquery按回车提交数据的代码示例
Nov 05 Javascript
从js向Action传中文参数出现乱码问题的解决方法
Dec 29 Javascript
js实现精美的图片跟随鼠标效果实例
May 16 Javascript
Node.js读写文件之批量替换图片的实现方法
Sep 07 Javascript
利用js判断手机是否安装某个app的多种方案
Feb 13 Javascript
vue 和vue-touch 实现移动端左右导航效果(仿京东移动站导航)
Apr 22 Javascript
js实现rem自动匹配计算font-size的示例
Nov 18 Javascript
vue 引入公共css文件的简单方法(推荐)
Jan 20 Javascript
解决layer.confirm选择完之后消息框不消失的问题
Sep 16 Javascript
js实现点击按钮随机生成背景颜色
Sep 05 Javascript
React 条件渲染最佳实践小结(7种)
Sep 27 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
教你IIS6的PHP最佳配置方法
2006/09/05 PHP
phpMyAdmin链接MySql错误 个人解决方案
2009/12/28 PHP
允许phpmyadmin空密码登录的配置方法
2011/05/29 PHP
PHP 小心urldecode引发的SQL注入漏洞
2011/10/27 PHP
PHP函数之日期时间函数date()使用详解
2013/09/09 PHP
PHP整数取余返回负数的相关解决方法
2014/05/15 PHP
如何让thinkphp在模型中自动完成session赋值小教程
2014/09/05 PHP
thinkphp中字符截取函数msubstr()用法分析
2016/01/09 PHP
php实现图片上传、剪切功能
2016/05/07 PHP
PhpStorm配置Xdebug调试的方法步骤
2019/02/02 PHP
TP5框架安全机制实例分析
2020/04/05 PHP
用JavaScript获取网页中的js、css、Flash等文件
2006/12/20 Javascript
11款新鲜的jQuery插件[附所有demo下载]
2011/01/24 Javascript
location.href用法总结(最主要的)
2013/12/27 Javascript
jquery实现通用版鼠标经过淡入淡出效果
2014/06/15 Javascript
Javascript堆排序算法详解
2014/12/03 Javascript
超级给力的JavaScript的React框架入门教程
2015/07/02 Javascript
js动态获取子复选项并设计全选及提交的实现方法
2016/06/24 Javascript
vue v-model动态生成详解
2018/06/30 Javascript
js 判断当前时间是否处于某个一个时间段内
2019/09/19 Javascript
vue使用showdown并实现代码区域高亮的示例代码
2019/10/17 Javascript
three.js 如何制作魔方
2020/07/31 Javascript
深入解析Python中的线程同步方法
2016/06/14 Python
python查看微信好友是否删除自己
2016/12/19 Python
Python 中urls.py:URL dispatcher(路由配置文件)详解
2017/03/24 Python
基于Python中单例模式的几种实现方式及优化详解
2018/01/09 Python
将python代码和注释分离的方法
2018/04/21 Python
python 定义给定初值或长度的list方法
2018/06/23 Python
python粘包问题及socket套接字编程详解
2019/06/29 Python
python中rb含义理解
2020/06/18 Python
python dict如何定义
2020/09/02 Python
Pytorch实现WGAN用于动漫头像生成
2021/03/04 Python
Capitol Lighting的1800lighting.com:住宅和商业照明
2019/04/10 全球购物
给领导的致歉信范文
2014/01/13 职场文书
导游词之张家界
2019/10/31 职场文书
Django drf请求模块源码解析
2021/06/08 Python