当jquery delay()处于活动状态时,无法运行click函数

时间:2013-05-16 05:47:25

标签: jquery

我使用jquery( ajax )创建简单表单,当用户提交表单时,成功消息将显示为slideDown(),延迟6秒后将slideUp()但延迟时间()处于活动状态我无法关闭此框。

$("#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

2 个答案:

答案 0 :(得分:5)

这段代码对我有用。

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

答案 1 :(得分:2)

您可以使用stop()为该元素停止所有当前正在运行的动画

试试这个

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

fiddle here