JQuery中SetTimeOut传参问题探讨

无论是window.setTimeout还是window.setInterval,在使用函数名作为调用句柄时都不能带参数。如果想要传入参数,自定义参数也好,事件参数event也好,解决办法是在此函数的基础上在做一层封装。其具体原理还不清楚,但是下边的办法确实能解决这个问题。
先看一个简单的代码


代码如下:

function show(){
alert("Hello World");
}
setTimeout(show,1000);

这段代码的效果是在1秒后显示hello world,但是如果改成
setTimeOut(show(),1000);
就会立即显示,达不到延时的效果了。但是如果加上引号就可以了。如:
setTimeOut("show()",1000);
就可以了。但是如果带上参数的话,还是不行比如:
setTimeOut("show(name)",1000)
这时就了一个比较的方法,就是再写个函数,该函数返回一个不带参数的函数,具体如下:


代码如下:

script language="javascript">
function show(name)
{alert("Hello World:" + name);}
function _show(name)
{
return function()
{
show(name);
}
}
setTimeout(_show(name),1000);
function
</script>

(0)

相关推荐

  • node.js超时timeout详解

    如果在指定的时间内服务器没有做出响应(可能是网络间连接出现问题,也可能是因为服务器故障或网络防火墙阻止了客户端与服务器的连接),则响应超时,同时触发http.ServerResponse对象的timeout事件. response.setTimeout(time,[callback]); 也可以不在setTimeout中指定回调函数,可以使用时间的监听的方式来指定回调函数. 如果没有指定超时的回调函数,那么出现超时了,将会自动关闭与http客户端连接的socket端口.如果指定了超时的回调函数,

  • 关于setInterval、setTimeout在jQuery中的使用注意事项

    以前写定时器的时候,总是习惯直接 setInterval("fn()",2000); 最近碰到个问题,在使用jquery写定时器时,总是会出现fn不存在的错误提示,如下 $(function(){setInterval("fn()",2000);}) 解决方法是去掉引号和括号,采用最原始的方法 $(function(){setInterval(fn,2000);}) 另外一种就是在书写jq的扩展,如下 复制代码 代码如下: $(function(){ $.exten

  • js超时调用setTimeout和间歇调用setInterval实例分析

    本文实例分析了js超时调用setTimeout和间歇调用setInterval的用法.分享给大家供大家参考.具体如下: 今天看了javascript高级程序设计(第三版)一书,发现说setTimeout比setInterval更好,觉得的确如此.平时都是用setInterval多点,现在还是转一下思路了.又学习到了.分析如下: setTimeout包含两个参数,第一个参数是要执行的代码,第二个参数是时间. 第一个参数可以是字符串也可以是函数,但是推荐使用函数而不是字符串. 使用字符串相当于eva

  • Jquery倒数计时按钮setTimeout的实例代码

    复制代码 代码如下: <head runat="server">    <title></title>    <script type="text/javascript" src="js/jquery-1.3.2.js"></script>    <script type="text/javascript">        var timeout;    

  • jQuery setTimeout()函数使用方法

    setTimeout()从载入后延迟指定的时间去执行一个表达式或者是函数;仅执行一次 ;和window.clearTimeout一起使用. 我在 复制代码 代码如下: $(document).ready(function(){setTimout(test(),200); function test() { alert(1); } }); 只会执行一次,有朋友说可以使用 复制代码 代码如下: setInterval ("showTime()", 5000);function showTi

  • sliderToggle在写jquery的计时器setTimeouter中不生效

    今天在写jquery时发现sliderToggle在setTimeouter中不生效,还报错说是发生了意想不到的错误.看了很久也没明白后来猛然发现使用show();hide():就可以. bootstrap的一些学习笔记. 首先应该了解其框架构成,什么对应什么,其次是名称要熟练记忆,一般而言都是所见即所得,名字很有规律.最后是多练,在练习中逐渐掌握这些规则.

  • SQL查询超时的设置方法(关于timeout的处理)

    为了优化OceanBase的query timeout设置方式,特调研MySQL关于timeout的处理,记录如下. 复制代码 代码如下: mysql> show variables like '%time%'; +----------------------------+-------------------+ | Variable_name | Value | +----------------------------+-------------------+ | connect_timeo

  • jQuery AJAX timeout 超时问题详解

    先给大家分析下超时原因: 1.网络不通畅. 2.后台运行比较慢(服务器第一次运行时,容易出现) 超时结果:JQ中 timeout设置请求超时时间. 如果服务器响应时间超过了 设置的时间,则进入 ERROR (错误处理) 超时解决方案: 1.默认的timeout为0,代表永不超时 2.尽量把timeout设置的大一点.坏处:使数据的加载变慢(貌似.呵呵). 3.在ERROR回调函数中写 有关于 超时 处理 的函数:例如,可以在超时的情况下再次调用取数据函数. -------------------

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

    当你打算调用一些jQuery代码显示隐藏的一个元素,并调用setTimeout()在一段延时之后设置其HTML的内容: 整个页面的代码是这样的. 复制代码 代码如下: <span style="font-size:18px;"><html> <head> <title></title> </head> <body> <a href="#" id='heihei' onclick

  • JQuery中SetTimeOut传参问题探讨

    无论是window.setTimeout还是window.setInterval,在使用函数名作为调用句柄时都不能带参数.如果想要传入参数,自定义参数也好,事件参数event也好,解决办法是在此函数的基础上在做一层封装.其具体原理还不清楚,但是下边的办法确实能解决这个问题. 先看一个简单的代码: 复制代码 代码如下: function show(){ alert("Hello World"); } setTimeout(show,1000); 这段代码的效果是在1秒后显示hello w

  • 浅析vue-router jquery和params传参(接收参数)$router $route的区别

    今天做项目时踩到了vue-router传参的坑(jquery和params),所以决定总结一下二者的区别. 1.jquery方式传参和接收参数 传参: this.$router.push({ path:'/xxx' query:{ id:id } }) 接收参数: this.$route.query.id 注意:传参是this.$router,接收参数是this.$route,这里千万要看清了!!! this.$router 和this.$route有何区别? 在控制台打印两者可以很明显的看出两

  • ajax中data传参的两种方式分析

    本文实例讲述了ajax中data传参的两种方式.分享给大家供大家参考,具体如下: 1. POST方式: /** * 订单取消 * @return {Boolean} 处理是否成功 */ function orderCancel(orderId, commant){ var flag = false; $.ajax({ type: "POST", url: "../order/orderCancel.action", //orderModifyStatus data:

  • jQuery中setTimeout的几种使用方法小结

    我们通过例子来说明一下jQuery中setTimeout的几种使用方法, 首先准备好测试用的DIV和公共函数: 复制代码 代码如下: <div id="div_debug"></div> <script src="http://www.studyday.net/demo/jquery.js"></script>  <script language="JavaScript">  funct

  • 实例讲解Vue.js中router传参

    Vue-router参数传递 为什么要在router中传递参数 设想一个场景,当前在主页中,你需要点击某一项查看该项的详细信息.那么此时就需要在主页传递该项的id到详情页,详情页通过id获取到详细信息. vue-router 参数传递的方式 Parma传参 贴代码: /router/index.vue export default new Router({ routes: [ { path: '/', name: 'Home', component: Home }, { path: '/work

  • Vue-CLI项目中路由传参的方式详解

    一.标签传参方式:<router-link></router-link> 第一种 router.js { path: '/course/detail/:pk', name: 'course-detail', component: CourseDetail } 传递层 <!-- card的内容 { id: 1, bgColor: 'red', title: 'Python基础' } --> <router-link :to="`/course/detail

  • vue中路由传参以及跨组件传参详解

    路由跳转 this.$router.push('/course'); this.$router.push({name: course}); this.$router.go(-1); this.$router.go(1); <router-link to="/course">课程页</router-link> <router-link :to="{name: 'course'}">课程页</router-link> 路由

  • C语言中变参函数传参的实现示例

    目录 背景引入 问题分析 指针大小 参数位置排布 解决问题 额外的测试 总结 参考资料 背景引入 近期在看一本书,叫做<嵌入式C语言自我修养>,写的内容对我帮助很大,是一本好书.在第6章,GNU C编译器扩展语法精讲一节,这本书给出了一些变参函数的例子: //1.变参函数初体验 #include<stdio.h> void print_num(int count,...) { int *args; args = &count + 1; for(int i = 0;i <

  • Python中引用传参四种方式介绍

    目录 引用传参一: ​引用传参二: ​​引用传参三: ​​引用传参四: 总结 引用传参一: ​​>>> a = 100 #这里的a是不可变类型 >>> def test(a): ... a+=a #这个式子有两层含义:1.这里可能是重新定义一个新的变量a,2.也有可能是修改a的值,但由于全局 #变量a不能修改,所以此处是重新定义了一个a: ... print("函数内:%d"%a) ... >>> test(a) 函数内:200 &

  • jquery bind(click)传参让列表中每行绑定一个事件

    点击列表中某行,弹出详情的需求比较常见.用jquey bind 点击事件时,传参不注意可能会导致点击每一行都是显示相同内容的情况,这大多数是因为传参没注意引起的问题.简易代码如下: for(var i=0;i<2;i++) { $("#b" + i).bind("click", {'bindText':bindText + i}, function(e){ butClick(e); }); } 测试代码: <html> <head> &

随机推荐