2012-02-07 61 views
0

当点击输入字段时,我正在执行一些jquery。如果我点击进出,真的很快它把所有东西都拧紧了。如何在开始新操作前让当前操作完成?等待jquery操作完成,然后开始新的焦点/模糊功能

$("#title, #desc").focus(function() { 

}).blur(function() { 

    var frameHtml = $('.liveDemoFrame').html(); 
    var liveDemoFrame = $('.liveDemoFrame'); 
    var previewFrame = $('#previewFrame'); 

    previewFrame.remove(); 
    liveDemoFrame.append(frameHtml).hide(); 
    $('#previewFrame').hide(); 
    liveDemoFrame.show().append('<p id="loading">Loading...</p>'); 

    setTimeout(function() { 
     $('#loading').remove(); 
     $('#previewFrame').fadeIn(); 
    }, 1000); 

}); 

回答

0

某处全局(即高于你的选择),在您的blur()

myTimeout = setTimeout(function... 

而在focus()

clearTimeout(myTimeout); 

var myTimeout; 

那么现在,当如果你关注元素,它会失去fadeIn()调用。