2012-02-07 6 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()呼び出しが失われます。

関連する問題