为什么jquery fadein只工作一次?

时间:2011-11-23 09:41:32

标签: jquery fadein

我编写了自己的ModalDialog函数,弹出窗口只运行一次。这是我的ModalDialog函数:

function ModalDialog(button, text, fadeOut) {
    $('.error-notification').remove();
    var x = "#" + button; 
    var $err = $('<div>').addClass('error-notification')
                 .html(text)
                 .css('left', $(x).position().left);
    $(x).after($err);
    $err.fadeIn('slow');
    if (fadeOut == true) {
        setTimeout(function() {
           $err.fadeOut()
       }, 3000);
   }
   //$err.delay(0).fadeOut('slow');

}

以下是masterpage加载的脚本文件中的代码。

$(".error-notification").live('click', function () {
    $(this).fadeOut('fast', function () { $(this).remove(); });
});

以下是我调用该函数的方法。

ModalDialog('testingAjax', 'h', false);

我知道每次调用ModalDialog函数,因为我最后在函数内部使用了console.log。那么为什么它只显示弹出一次而不是第二次/第三次/第四次等...?

1 个答案:

答案 0 :(得分:2)

您正在删除所有以前存在的弹出窗口:

$('.error-notification').remove();

它实际上显示了所有这些,但只保留最后一个。 这是一个相关的小提琴:http://jsfiddle.net/BhU6F/3/