2012-01-10 23 views
1

私はレールのフラッシュ警告を表示したり隠したりするのにうまく動作する以下の機能を持っています。それは遅れて、フラッシュメッセージを表示し、次に非表示にしますが、遅れが遅い場合にユーザーがフラッシュを隠すことができるようにするボタンを追加したいと思いますが、がない場合にのみ機能します hideFlashMessage関数を使用しますか? ??jQuery show/hideFlashMessagesクリック機能が動作していませんか?

機能は次のようになります。

function showFlashMessages() { 
    $('#flash').delay(800).animate({"top": "+=75px"}, 200); 
} 

function hideFlashMessages() { 
    $('#flash').delay(10000).animate({"top": "-=75px"}, 300); 
    $('#flash').fadeOut(); 
} 

function clickHideFlashMessages() { 
    $('#flash').animate({"top": "-=75px"}, 300); 
    $('#flash').fadeOut(); 
} 

...そして、彼らはそのように呼ばれます:

$(document).ready(function(){ 

    showFlashMessages(); 

    hideFlashMessages(); 

    $("#closeFlash").click(function(){ 
    clickHideFlashMessages(); 
    }); 

}); 

すべてのヘルプは高く評価されます。

答えて

1

あなたはちょうどあなたが新しいアニメーションを開始する前に、hideFlashMessagesアニメーションを停止するには、あなたの#closeFlashクリックハンドラに$('#flash').stop();を追加する必要があります...非常に近い:

$("#closeFlash").click(function(){ 
    $('#flash').stop(); 
    clickHideFlashMessages(); 
    }); 

ここで働い例です:http://jsfiddle.net/p6knk/

+0

ありがとう、それは完璧に働いた。 – Darcbar

関連する問題