Как закрыть jQuery fancybox с помощью кнопки click
Я использую fancy box для создания всплывающего окна и загрузки другой страницы с помощью iframe. вот мой код
<script type="text/javascript">
$(document).ready(function() {
$('.calendar .day').click(function() {
day_num = $(this).find('.day_num').html();
day_data = prompt('Enter Stuff', $(this).find('.content').html());
if (day_data != null) {
$.ajax({
url: window.location,
type: 'POST',
data: {
day: day_num,
data: day_data
},
success: function(msg) {
location.reload();
}
});
}
});
});
$(document).ready(function(){
$("a.iframeFancybox1").fancybox({
'width' : 800,
'height' : 650,
'overlayOpacity' : '0.4',
'overlayColor' : '#000',
'hideOnContentClick' : false,
'autoScale' : false,
'transitionIn' : 'elastic',
'transitionOut' : 'elastic',
'type' : 'iframe'
});
});
</script>
Он загружает страницу успешно и делает материал. Но вместо того, чтобы закрывать всплывающее окно, он загружает форму источника всплывающего окна внутри самого всплывающего окна. Я хочу закрыть всплывающее окно, когда работа будет выполнена, и вернуться на главную страницу меню, из которой было создано всплывающее окно. Как это сделать при нажатии кнопки всплывающей формы.
С уважением, Рангана
Ответы
Ответ 1
вызов $.fancybox.close();
также посмотрите на ответы в сообщении
Согласно http://fancybox.net/faq
- Как закрыть FancyBox из другого элемента??
Просто позвоните $.fn.fancybox.close()
on ваше событие onClick
Поэтому вы должны просто добавить в fn
.
Ответ 2
Мне пришлось использовать parent.jQuery.fancybox.close()
с моим Drupal сайтом, чтобы это нормально работало.
Ответ 3
Вы можете использовать встроенный вызов
<input type="button" onclick="$.fancybox.close()" value="CloseFB" />
Или вы можете использовать функцию под названием
<script>
function closeFB() {
// Before closing you can do other stuff, like page reloading
$("#destination_div").load("?v=staff #source_div_with_content");
// After all you can close FB
$.fancybox.close();
}
</script>
<input type="button" onclick="closeFB()" value="CloseFB" />
Функция вызова в onClickevent
Ответ 4
Это старый поток, но я думал, что поделюсь двумя центами.
У меня были похожие проблемы с закрытием fancybox iframe с использованием события onclick, и после многих попыток это сделало трюк для меня: window.parent.jQuery.fancybox.close()
Вот пример использования кнопки ввода:
<input type="button" class="formbutton" value="Close" onClick="window.parent.jQuery.fancybox.close();" />
Кроме того, я тестировал onlick на теге anchor (a), и он работал нормально.
Ответ 5
$.fn.fancybox.close()
не работает для версии 2.x, он вызывает ошибку. Если вы используете версию 2.x, попробуйте $.fancybox.close(true)
.
Ответ 6
Из-за моей кнопки закрытия есть разные функции: закрыть всплывающее окно и закрыть fancybox. Для остановки события барботажа необходимо использовать e.stopPropagation();
$('.close-btn').on('click', function(e) {
e.preventDefault();
e.stopPropagation();
$(this).parent().hide();
$.fancybox.close();
});
Ответ 7
ПРОСТОЕ решение, найдите ссылку для закрытия (у нее есть класс fancibox-close) и сделайте это за 6 секунд (или 6000 миллисекунд)
setTimeout(function(){
$('.fancybox-close').click();
}, 6000);
Ответ 8
Это работает для меня...
<script type="text/javascript" src="../../js/jquery-ui.js"></script>
<script src="../../js/fancybox-2.1.5/jquery.fancybox.js" type="text/javascript"></script>
<script src="../../js/fancybox-2.1.5/jquery.fancybox.pack.js" type="text/javascript"></script>
<link href="../../js/fancybox-2.1.5/jquery.fancybox.css" rel="stylesheet" type="text/css" />
<script lang="javascript">
var J$ = jQuery.noConflict();
function SelectAndClose() {
txtValue = document.getElementById('<%= _browseTextBox.ClientID %>').value;
window.returnValue = txtValue.value;
var isOpera = !!window.opera || navigator.userAgent.indexOf(' OPR/') >= 0;
// Opera 8.0+ (UA detection to detect Blink/v8-powered Opera)
var isFirefox = typeof InstallTrigger !== 'undefined'; // Firefox 1.0+
var isSafari = Object.prototype.toString.call(window.HTMLElement).indexOf('Constructor') > 0;
// At least Safari 3+: "[object HTMLElementConstructor]"
var isChrome = !!window.chrome && !isOpera; // Chrome 1+
var isIE = /*@[email protected]*/false || !!document.documentMode; // At least IE6
if (isIE == true) {
//alert("iexcplorer");
parent.J$.fancybox.close();
//document.getElementById("closeFancyInternet").click();//For IExplorer
}
else {
//alert("another one");
document.getElementById("closeFancy").click(); //For Firefox
}
return false;
}
function closeBrowsing() {
document.getElementById("closeFancy").click();
window.close();
return false;
}
</script>
Если вы хотите проверить, что ваш браузер должен увидеть эту ссылку: http://jsfiddle.net/9zxvE/383/
Ответ 9
Кнопка закрытия события fancybox:
document.getElementsByClassName("fancybox-item fancybox-close")[0].click();