国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

關于JS中setTimeout()無法調用帶參函數問題的解決方法

2019-11-20 09:38:58
字體:
來源:轉載
供稿:網友

本文實例分析了JS中setTimeout()無法調用帶參函數問題的解決方法。分享給大家供大家參考,具體如下:

解決方法:重寫setTimeout() 方法,需要用到閉包函數。如下:

var _st = window.setTimeout;window.setTimeout = function(fRef, mDelay){ if (typeof fRef == 'function') {  var argu = Array.prototype.slice.call(arguments, 2);  var f = function(){    fRef.apply(null, argu);  };  return _st(f, mDelay); } return _st(fRef, mDelay);}

有了這樣的改寫,用setTimeout()調用帶參函數的時候,就可以用如下的形式:

setTimeout(fun,10,param);

其中,fun 是被函數;10為調用周期,單位是 毫秒;param是fun函數的參數。

另一種更為簡單的方法:

function moveing(id,target_x,target_y,t){ var ele = document.getElementById(id); //alert("divObject: "+ele) var xpos = parseInt(ele.style.left); //alert(ele.style.left) var ypos = parseInt(ele.style.top); if(xpos < target_x){ xpos++; } if(ypos < target_y ){ ypos++; } ele.style.left = xpos + "px"; ele.style.top = ypos + "px";//被遞歸調用的函數本身,拼成字符串形式,注意第一個參數的引號 var repeat ="moveing('"+id+"',"+target_x+","+target_y+","+t+")";  var movment = setTimeout(repeat,t);}

更多關于JavaScript相關內容感興趣的讀者可查看本站專題:《JavaScript切換特效與技巧總結》、《JavaScript查找算法技巧總結》、《JavaScript動畫特效與技巧匯總》、《JavaScript錯誤與調試技巧總結》、《JavaScript數據結構與算法技巧總結》、《JavaScript遍歷算法與技巧總結》及《JavaScript數學運算用法總結

希望本文所述對大家JavaScript程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宁河县| 华容县| 西乌| 封丘县| 霸州市| 积石山| 房山区| 泸溪县| 高安市| 海门市| 大竹县| 达拉特旗| 那曲县| 东安县| 万安县| 达州市| 保山市| 科尔| 宁化县| 汶川县| 中方县| 鄂托克前旗| 敦化市| 嫩江县| 堆龙德庆县| 盐池县| 南平市| 平凉市| 商丘市| 西贡区| 鸡东县| 宜章县| 盐亭县| 泾阳县| 醴陵市| 杨浦区| 民勤县| 永嘉县| 简阳市| 克拉玛依市| 石家庄市|