Jquery延迟执行脚本

时间:2012-08-02 09:10:17

标签: javascript 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');
});

我需要在将addClass('hover')元素悬停后暂停执行$('#navMain .nav1')

我试过这个,但它不起作用:

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

感谢

2 个答案:

答案 0 :(得分:9)

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');
  }

);

答案 1 :(得分:3)

如果简单的javascript延迟可以帮助您,您可以执行以下操作:

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

具有以下签名: setTimout(functionToExecute,delayInMs);

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

跳跃我帮助你。