2013-05-16 74 views
1

我創建使用jQuery(AJAX)簡單的形式,當用戶提交形成成功的消息後,即會slideUp()但會出現slideDown()和延遲6當第二延遲()是活躍的,我不能關閉這個盒子。無法運行單擊功能時,jQuery的延遲()是活躍

$("#show").click(function() { 
    //ajax will submit form 
    //$.ajax({ 
    //type: form34.attr("method"), 
    //url: form34.attr("action"), 
    //data: form34.serialize(), 
    //success: function (data) { ... 
    //when success run this 
    $(".message_div").addClass("message_success").slideDown().delay(6000).slideUp(); 
}); 

$(".close").click(function() { 
    $(".message_div").slideUp(); 
}); 

這裏我jsfiddle

+0

我覺得這是不是延遲一個不錯的選擇,你可以使用setTimeout的,而不是 –

+0

嘗試使用的stop()方法的jQuery –

回答

5

這個代碼適用於我。

$(".close").click(function() { 
     $(".message_div").stop().slideUp(); 
}); 
+0

thanks..last favor..can您提供一些的jsfiddle – Olrac

+0

感謝@Vond裏茨@ Olrac Vaizard這裏是小提琴http://jsfiddle.net/YjxcT/5/ – rusly

+0

你釘了它.. @ rusly – Olrac

2

您可以使用stop()該元素停止所有當前正在運行的動畫

試試這個

$(".close").click(function() { 
    $(".message_div").stop(true,true).slideUp(); 
}); 

fiddle here