首頁 > web前端 > js教程 > 主體

JQuery中SetTimeOut傳參問題探討_jquery

WBOY
發布: 2016-05-16 17:34:07
原創
1248 人瀏覽過

無論是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 lanage="javascript"guguage="javascript" >
function show(name)
{alert("Hello World:" name);}
function _show(name)
{
return function()
{
{
return function()
{
show(name);
}
} setTimeout(_show(name),1000); function
相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板