Закрыть FancyBox после действия? - PullRequest
0 голосов
/ 25 августа 2010

У меня есть несколько ссылок на мою страницу, при нажатии на которые открывается окно с фантазией. Внутри fancybox есть несколько кнопок действий (например, «закрыть элемент», «удалить элемент»). Когда эти кнопки будут нажаты, я хочу, чтобы она отправила форму, как обычно, а затем закрыла коробку фантазии. Как я могу настроить это, чтобы не мешать POST?

Примечание: Я не использую Ajax.

Ответы [ 5 ]

2 голосов
/ 25 августа 2010

Если ваш сервер возвращает что-то, например, мое эхо «отправлено» по завершении, вы можете сделать это:

$.post("php/send_mail.php", function(result){
    if(result == 'sent'){
    //$('#success').slideDown('slow'); -My code
    //$('#submit').hide(); -My code
    $.fancybox.close();
    }
});

Только в вашем случае вы захотите сделать $ .fancybox.close ()

Если вы делаете это через $ .ajax вместо .post, вы можете использовать success: вместо этого.

Извините, если это не поможет.

1 голос
/ 25 августа 2010

Марк,

Когда вы говорите «выполнить сообщение», я предполагаю, что вы имеете в виду, что вы хотите закрыть fancybox, как только запрос будет отправлен (или как можно ближе к этому времени)? Я предполагаю, что вы сериализируете фрагменты fancyBox как часть POST и не хотите закрывать его слишком рано.

В этом случае я бы использовал обратный вызов jQuery.ajax beforeSend, чтобы закрыть окно непосредственно перед отправкой запроса:

$.ajax({
  beforeSend: function() {
    //close fancybox here
  }
});

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

- Andrew

0 голосов
/ 05 июля 2012

У меня была та же проблема, что и у вас. У меня есть хорошее решение, как показано ниже. если я использую пост php как обычно для codeigniter

'<?php
if ($this->input->post())
  {
*after finishing the action use the below code

echo  "<script>  parent.jQuery.fancybox.close(); </script>";

}'
?>
//if you want to refresh the parent window use  parent.location.reload(); before close the //fancy box
0 голосов
/ 26 августа 2010

Я не уверен, что понимаю вашу проблему, но я замечаю, что когда fancybox открывается со многими ссылками, кнопки динамически создаются в свойстве title fancybox, эти элементы отсутствуют в DOM вашей страницы. И вы не можете взаимодействовать с элементом вашей страницы.

Я не знаю, как вы создаете свои кнопки действий (например, «закрыть элемент», «удалить элемент»), возможно, вам следует объяснить это, чтобы помочь нам помочь вам:)

0 голосов
/ 26 августа 2010

Как насчет сокрытия формы, перемещения элемента формы под элемент body, а затем вызова form.submit ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...