DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> JavaScript基礎知識 >> js setTimeout 常見問題小結
js setTimeout 常見問題小結
編輯:JavaScript基礎知識     
一、 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
XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved