simplemodal, закройте и сразу же снова откройте - PullRequest
1 голос
/ 11 ноября 2009

Я пытаюсь использовать плагин simplemodal jquery для отображения некоторого HTML. В этом html-файле есть кнопка ajax, которая при нажатии возвращает более широкое HTML-содержимое в модальное поле.

Кажется, что нет способа сделать так, чтобы simplemodal «осознавал» это и имел автоматическое изменение размера, поэтому я хотел бы просто убить модал при нажатии кнопки ajax и затем воссоздать его после содержимое было возвращено, и пусть начальный autosize обрабатывает его. Однако я не могу понять, как заставить это работать.

Пока у меня есть:

$('#Element input.Ajax').click(function (e) {

//Get Ajax content and return to div 

$.modal.close();

$('#Element').modal(
              {
              onOpen: function (dialog) 
              {
              dialog.overlay.fadeIn('slow', function () 
                  {dialog.data.hide();
                   dialog.container.fadeIn('slow', function ()  
                      {dialog.data.slideDown('slow');});
                  });
               },
            onClose: function (dialog) 
                {
                dialog.data.fadeOut('slow', function () 
                    {
                    dialog.container.hide('slow', function () 
                        {
                        dialog.overlay.fadeOut('slow', function () 
                            {$.modal.close();});
                        });
                    });
                },
            overlayClose:true,
            opacity: 75,
              });

Но все, что делает этот код - закрывает оверлей без повторного открытия.

1 Ответ

0 голосов
/ 16 ноября 2009

Вы также можете определить размеры новых данных и соответственно изменить размер контейнера.

Однако, основываясь на вашем методе, вы можете сделать что-то вроде:

// inside the onShow callback for the first modal, bind the click event
onShow: function (dialog) {
    $('#Element input.Ajax', dialog.container[0]).click(function (e) {
        $("#new-modal").load("page.html", function () {
            $("#new-modal").modal({
                // your options
            });
        });
    });
}

Надеюсь, это поможет.

-Эрик

...