2010-08-25 3 views
0

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

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

ответ

2

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

$.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, вы можете использовать успех: вместо этого.

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

1

Марк,

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

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

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

Объект XMLHttpRequest создается в тот момент, так что не должно быть любое влияние на запрос.

--Andrew

+0

Нет ... Мне не нужно сериализовать ничего. И он не использует jQuery.ajax. Это обычная старая форма. Я думаю, что когда вы нажимаете кнопку, нужно перейти к выполнению '

', который является правом переадресации? Тогда я не знаю, где положить крючок. Но я предполагаю, что смогу ajaxify кнопку и полностью закрыть fancybox? – mpen

0

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

0

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

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

0

У меня было то же самое вопрос, который у вас есть. У меня есть хорошее решение, как показано ниже. , если я использую 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 
Смежные вопросы