Закрытие модального окна при изменении идентификатора

Я использую SimpleModal Эрика Мартина (http://www.ericmmartin.com/projects/simplemodal-demos/) на www.1tryten.com/checkout.php. Код для загрузки прост:

jQuery(function ($) {
$('#CheckoutStepAccountDetails').modal();

});

Это загружает форму с двумя вариантами отправки. После отправки формы класс .ExpressCheckoutBlockCompleted добавляется в div # CheckoutStepAccountDetails. В это время мне нужно, чтобы модальное окно исчезло. Я пробовал добавить класс simplemodal-close к кнопке отправки, но затем он просто закрывает модальное окно без отправки формы. Кто-нибудь знает, как я могу заставить эту работу?


person Ben    schedule 28.06.2011    source источник


Ответы (2)


Бен, я сомневался, что простое добавление класса в ваш div позволит вам удалить модальное окно.

Я не использую этот плагин, но использую собственный код для моего простого модального окна.

Вот как я контролирую, когда и как контролировать закрытие модального окна:

//modal has a close button with id=modalclose. when it is clicked, I hide the modal mask
//this will close modal only if close button is clicked
$("#dialog #modalclose").click(function (e) { 
  $('#mask, .window').hide(); 
});

//if I want to close the modal by outside click on the mask
$("#mask").click(function (e) { 
  $('#mask, .window').hide(); 
});

Поэтому для вашего случая вам необходимо добавить этот тип вызова после отправки формы. Если у вас есть функция обратного вызова, доступная после отправки формы, вы можете добавить код, чтобы скрыть модальное окно внутри этой функции обратного вызова.

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

person kheya    schedule 28.06.2011
comment
Большое спасибо за Вашу помощь. Не могли бы вы поделиться со мной ссылкой, чтобы я увидел, как она работает на вашем сайте? - person Ben; 29.06.2011
comment
Как я уже сказал, я не использую этот плагин. Я использую прямой класс и CSS. Но я знаю, как модальные элементы работают в моем коде. Конечно, плагин более мощный. - person kheya; 29.06.2011

Для пояснения, вопреки тому, что сказал Projapati, добавление класса simplemodal-close к элементу внутри модального окна фактически приведет к закрытию диалогового окна при нажатии.

Исходя из того, что вы предоставили, все, что вам нужно сделать, это следующее:

//if I want to close the modal by outside click on the mask
$("#mask").click(function (e) { 
  $.modal.close(); 
});

Извините, я не смог ответить на это раньше, я был в отпуске;)

person Eric Martin    schedule 03.07.2011