在焦点/模糊功能上开始新的操作之前等待jquery操作完成

时间:2012-02-07 15:45:25

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

});

1 个答案:

答案 0 :(得分:0)

全球某处(即,在您的选择器上方),放

var myTimeout;

然后在blur()

myTimeout = setTimeout(function...

focus()

clearTimeout(myTimeout);

现在每当你关注元素时,它都会失去fadeIn()调用。