2013-05-29 133 views
0

而不是在單擊元素時觸發代碼,我希望此函數在4秒後自動運行。我怎樣才能使它成爲可能?在jquery中執行X秒後執行一個函數

$('a.close,form #okLogin, mask').live('click',function() { 
    $('.login-popup').fadeOut(300); 
    $('#mask').remove(); 
    return false; 
}); 
+5

使用'setTimeout()'函數。 – 2013-05-29 12:18:52

+2

請在發佈之前在Google上搜索。在谷歌上搜索你的確切問題可以讓你對第一個結果有一個答案... http://stackoverflow.com/questions/8216394/how-to-make-a-jquery-function-call-after-x-seconds – PLPeeters

+0

您的選擇器「掩碼」將選擇所有屬於_type_「掩碼」的元素。我想你想'#mask'來獲取帶有'mask'的id的元素。 – Zim84

回答

1
$(function(){ 
setTimeout(function(){ 
$('.login-popup').fadeOut(300); 
       $('#mask').remove(); 

},4000); 
}); 
+1

在'setTimeout'裏面使用'return false'的目的是什麼? –

+0

真的...不需要... – vijay

+0

謝謝。它的工作。 –

0

使用setTimeout()

setTimeout(function(){ 
     $('.login-popup').fadeOut(300); 
     $('#mask').remove(); 
},4000); 
1
setTimeout(function() { 
    $('.login-popup').fadeOut(300); 
    $('#mask').remove(); 
}, 4000); 
+0

在'setTimeout'裏面使用'return false'的目的是什麼?只是想知道.. –

+0

什麼都沒有。我不小心,只是複製問題的功能。 –

0
setTimeout(function(){ 
    $('#okLogin').click(); 
}, 4000); 

重要live()方法已被棄用。使用.on()

1

使用內置的JavaScript中setTimeout()功能。一段時間後執行的函數,就沒有必要使用jQuery:

setTimeout(function() { 
    // your function goes here 

    $('.login-popup').fadeOut(300); 
    $('#mask').remove(); 
}, 4000); // this number is in milliseconds 

參考文獻:

+1

不是'$('。login-popup')。fadeOut(300);'jQuery? –

+0

@PalashMondal我的意思是'setTimeout'不是jQuery。正如問題所在:在X秒後執行函數in_ ** jquery **。 – 2013-05-29 12:29:18

+0

好吧,我只關注_不需要使用jQuery_。你也可以在你的回答中說清楚:) –

0

試試這個:

$('a.close,form #okLogin, mask').on('click', function() { 
    $('.login-popup').fadeOut(300); 
    $('#mask').remove(); 
    return false; 
}); 

$(window).load(function() { 
    setTimeout(function() { 
     $('#okLogin').triggerHandler('click') 
    }, 4000); 
});