js setTimeout 常见问题小结

一、 setTimeout this指向问题
setTimeout("this.count()",1000)中的this指的是window对象.
js的setTimeout定义为


代码如下:

window.setTimeout=function(vCode, iMilliSeconds [, sLanguage]){
//.....代码
return timer//返回一个标记符
}

所以当向setTimeout()传入this的时候,当然指的是它所属的当前对象window了。
解决方法:
1、在调用setTimeout前先保存this,如self=this; setTimeout("self.count()", 1000);
2、使用jquery的$.proxy改变this指向,如$.proxy(setTimeout("this.count()"), this);
二、向setTimeout传入参数


代码如下:

function init(){
var url = "<%=basePath%>fetchwater.do?method=searchRealWater&xzqh=" + "<%=xzqh%>" + "&rand="+Math.random();
//alert(url);
window.setTimeout(function(){ searchJDWater(url);},100);
}

亲测可以传入任意参数,可以是string类型也可以是其他的类型,只是在传入this时要注意用上面的解决方法。
附上一个更加详细的向settimeout传参方法链接http://www.jb51.net/article/40524.htm

(0)

相关推荐

  • js中settimeout方法加参数的使用实例

    简单使用看w3school 里面没有参数调用, 例子如下 复制代码 代码如下: <script type="text/javascript"> function timedMsg() { var a ="dd"; var t=setTimeout(function(){ cao(a);},3000) } function cao(a) { alert(a); } </script> </head> <input type=&

  • js中settimeout方法加参数

    js中settimeout方法加参数的使用.简单使用看w3school 里面没有参数调用, 例子: 复制代码 代码如下: <script type="text/javascript"> function timedMsg() { var a ="dd"; var t=setTimeout(function(){ cao(a);},3000) } function cao(a) { alert(a); } </script> </head

  • js中的setInterval和setTimeout使用实例

    setInterval() 定义和用法 setInterval() 方法可按照指定的周期(以毫秒计)来执行函数或表达式.该方法会不停地循环调用函数,直到使用 clearInterval() 明确停止该函数或窗口被关闭.clearInterval() 函数的参数即 setInterval() 返回的 ID 值. 语法 setInterval(code,millisec[,"lang"])code 必需.要调用的函数或要执行的代码串.millisec 必须.周期性执行或调用 code 之间

  • js中setTimeout()与clearTimeout()用法实例浅析

    本文实例分析了js中setTimeout()与clearTimeout()用法.分享给大家供大家参考.具体分析如下: setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式. clearTimeout() 方法可取消由 setTimeout() 方法设置的 timeout. <input type = text id = aaa > <input type = button value = stop id = bb onclick = bb()> <scrip

  • js使用setTimeout实现定时炸弹的方法

    本文实例讲述了js使用setTimeout实现定时炸弹的方法.分享给大家供大家参考.具体分析如下: 今天看 css探索之旅 的博客文章,有个用setTimeout写定时炸弹的效果,自己也就照猫画猫来写一个. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <

  • setTimeout自动触发一个js的方法

    复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv=&qu

  • js setTimeout 常见问题小结

    一. setTimeout this指向问题 setTimeout("this.count()",1000)中的this指的是window对象. js的setTimeout定义为 复制代码 代码如下: window.setTimeout=function(vCode, iMilliSeconds [, sLanguage]){ //.....代码 return timer//返回一个标记符 } 所以当向setTimeout()传入this的时候,当然指的是它所属的当前对象window了

  • SVG动画vivus.js库使用小结(实例代码)

    SVG动画vivus.js库使用整理,具体实例代码如下所示: 使用方法如图: HTML例子代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta

  • React useEffect异步操作常见问题小结

    目录 三个常见的问题: 一.react hooks发异步请求 二.如何在组件加载的时候发起异步任务 三.如果在响应回来之前组件被销毁了会怎样? 四.如何在组件交互时发起异步任务 为什么两种写法会有差异呢? 五.其他陷阱 总结 useEffect 和异步任务搭配使用的时候会遇到的一些坑总结. 三个常见的问题: 1.如何在组件加载的时候发起异步任务 2.如何在组件交互的时候发起异步任务 3.其他陷阱 一.react hooks发异步请求 1.使用useEffect发起异步任务,第二个参数使用空数组可

  • SpringBoot常见问题小结

     1.在外部tomcat中运行 pom文件中 jar 改成 war,内置tomcat要改成provide <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> <scope>provided</scope> </dependency> 启动类改成如下: @Sprin

  • Win7 64位 mysql 5.7下载安装常见问题小结

    1.从官网下载MySQL: 这是我们要找的,win7 64位 点击下载; 出现如图所示,我们不必要登录注册,点击红线内的即可的即可. 2.安装及配置: 然后解压到本机文件夹内: 进入到该目录下,将my-default.ini文件复制一份改名为my.ini 打开my.ini 进行配置 代码:(把里面D:\mysql\mysql-5.6.17-winx64改成你自己的软件路径,保存) [mysql] # 设置mysql客户端默认字符集 default-character-set=utf8 [mysq

  • Android 播放视频常见问题小结

    在android 开发中常见到视频播放的问题,在常规的视频中 有直接用videoView + MediaController 或者 mediaController + serfercie holder 常见的问题 1 在播放中如何处理播放器的横屏切换 和 播放器上的文案显示的布局变化 在activity 中 设置 android:configChanges="orientation|screenSize" 这样在旋转中,activity 就不会重建 重写系统方法 public void

  • Mysql5.7解压版的安装和卸载及常见问题小结

    一.安装 1.下载 到mysql官网 http://dev.mysql.com/downloads/mysql/ 下载mysql 注:msi的是安装版 2.解压 解压到想安装的目录下,我的是D:\mysql-5.7.13-winx64 3.配置my.ini 在D:\mysql-5.7.13-winx64目录下新建my.ini文件,输入以下配置代码: [mysqld] # 设置mysql的安装目录 basedir=D:\mysql-5.7.13-winx64 # 设置mysql数据库的数据的存放目

  • SpringBoot整合mybatis常见问题(小结)

    Spring中常见问题 1.NoSuchBeanDefinitionException 2.'..Service' that could not be found service找不到 3.port 80 was already in use 端口号被占用 4.TemplateInputException 模板解析异常或找不到模板 1.检查模板所在的目录是否与配置的前缀目录相同 2.检查返回的模板是否存在,返回值类型是否一致 3.检查配置前缀时是否以"/"斜杠结尾 4.控制层的url与

  • pycharm中TensorFlow调试常见问题小结

    1. RuntimeError: Attempted to use a closed Session. 在pycharm下调用tensorflow库时,运行出现以下问题: RuntimeError: Attempted to use a closed Session. 解决方法:将STEP=5000开始的程序整体右移,包含在"with"内 可能遇见的问题:python代码如何整体移动 选中代码,按下"Tab"键即可整体右移 选中代码,按下"Shift+Ta

  • Python asyncio异步编程常见问题小结

    目录 一.asyncio编程简单示例 二.asyncio编程常见问题 三.报错原因及解决方案 今天继续给大家介绍Python相关知识,本文主要内容是Python asyncio异步编程常见问题. 一.asyncio编程简单示例 首先,我们来看一段简单的Python asyncio异步编程代码,相关代码如下所示: import asyncio async def fun(): print(1) await asyncio.sleep(2) print(2) return 3 async def m

随机推荐