2013-03-18 42 views
3

對不起,但這對我來說並不容易....! 我想要一個div在幾秒後顯示,點擊一個按鈕後。 這是顯示,但正確的時候,你點擊,沒有任何延遲。我在這裏做錯了什麼?setTimeout問題,沒有時間了

$('div.skill').hide(); 
$('.btn_2').click(function(e){    
     showSkills(); 
     }); 
function showSkills(){ 
    alert("Hello") 
}; 
setTimeout ("showSkills()", 3000); 

TNX

回答

3

你靠近。

  1. setTimeout調用應位於您的點擊處理程序中,而不是在其下方。
  2. 沒有必要將函數名稱作爲字符串傳遞。

這是實現你追求的正確方法:

$('div.skill').hide(); 
$('.btn_2').click(function (e) { 
    setTimeout(showSkills, 3000); 
}); 

function showSkills() { 
    alert("Hello") 
}; 
2

要調用在按鈕單擊處理程序showSkills,將您的setTimeout線到您的單擊處理,而不是

$('div.skill').hide(); 
$('.btn_2').click(function(e){    
     setTimeout (showSkills, 3000); 
     }); 
function showSkills(){ 
    alert("Hello") 
}; 
+1

道歉,使用移動網站所以不能添加代碼標記向上。 – Dutts 2013-03-18 11:48:09

0

嘗試:

setTimeout (function(){ "showSkills()"}, 3000); 
+0

雖然它會起作用,但它會使代碼更難讀取(並維護) – strah 2013-03-18 11:48:14

0
$('div.skill').hide(); 

$('.btn_2').click(function(e){    
     setTimeout(showSkills, 3000); 
}); 

function showSkills(){ 
    alert("Hello") 
}; 
0

試試這個:

$('div.skill').hide(); 
$('.btn_2').click(function(e){    
    setTimeout (showSkills, 3000); 
}); 
function showSkills(){ 
    alert("Hello") 
};