почему jquery fadein работает только один раз? - PullRequest
0 голосов
/ 23 ноября 2011

Я кодировал свою собственную функцию 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');

}

А вот код, который находится в файле скрипта, который загружает мастер-страница.

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

Вот как я вызываю функцию.

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

Я знаю, что функция ModalDialog вызывается каждый раз, потому что я использовал console.log внутри функции в самый последний раз. Так почему же он показывает всплывающее окно только один раз, а не второй / третий / четвертый раз и т. Д.?

1 Ответ

2 голосов
/ 23 ноября 2011

Вы удаляете все ранее существующие всплывающие окна:

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

Это фактически показывает их все, но сохраняет только последнее.Вот соответствующая скрипка: http://jsfiddle.net/BhU6F/3/

...