2012-08-02 264 views
2

具有如下:Jquery的延遲執行

$('#navMain .nav1').hover(function() { 
    $(this).addClass('hover'); 
    if ($.browser.msie && $.browser.version < 7) 
     $('select').css('visibility', 'hidden'); 
}, function() { 
    $(this).removeClass('hover'); 
    if ($.browser.msie && $.browser.version < 7) 
     $('select').css('visibility', 'visible'); 
}); 

我需要懸停在$('#navMain .nav1')元素後延遲的addClass('hover')執行。

我已經試過,但它不工作:

$(this).delay().addClass('hover'); 
if ($.browser.msie && $.browser.version < 7) 
    $('select').delay().css('visibility', 'hidden'); 

感謝

回答

8
setTimeout(function(){ 

    // your stuff here 

}, 500); // delay 500 ms 

與您的代碼:

$('#navMain .nav1').hover(

    function() { 
    setTimeout(function(){ 
     $(this).addClass('hover'); 
     if ($.browser.msie && $.browser.version < 7) $('select').css('visibility', 'hidden'); 
    }, 500); // delay 500 ms 
    }, 

    function() { 
    $(this).removeClass('hover'); 
    if ($.browser.msie && $.browser.version < 7) $('select').css('visibility', 'visible'); 
    } 

); 
+0

我該如何處理我的代碼? – ShaneKm 2012-08-02 09:13:14

3

如果一個簡單的JavaScript延遲可以幫助你,你可以做如下:

setTimeout(function() { 
    // your code here 
}, 3000); 

用以下簽名: setTimout(functionToExecute,delayInMs);

和文檔: http://www.w3schools.com/js/js_timing.asp

跳頻我幫你。