19 Stimmen

Wie man eine jQuery fancybox von Schaltfläche klicken schließen

Ich benutze schicke Kiste ein Popup zu erstellen und eine andere Seite über einen iframe zu laden. Hier ist mein Code

    <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>

Die Seite wird erfolgreich geladen und der Vorgang wird ausgeführt. Aber anstatt das Popup-Formular zu schließen, lädt es das Popup-Quellformular im Popup selbst. Ich möchte das Popup-Formular schließen, wenn die Arbeit erledigt ist, und zur Hauptmenüseite zurückkehren, von der aus das Popup generiert wurde. Wie erreiche ich dies, wenn ich auf eine Schaltfläche des Popup-Formulars klicke?

Mit freundlichen Grüßen, Rangana

2voto

Vladimir Kuzmin Punkte 51

Wegen meiner Schließen-Taste hat verschiedene Funktionen: schließen Popup, und schließen Fancybox. Es muss e.stopPropagation() zu stoppen Blasenbildung Ereignis verwenden;

$('.close-btn').on('click', function(e) {
        e.preventDefault();
        e.stopPropagation();
        $(this).parent().hide();
        $.fancybox.close();
});

1voto

SIMPLE Lösung, finden Sie Link zu schließen (es haben eine Klasse fancibox-close) und tun es in 6 Sekunden (oder 6000 Milisekunden)

setTimeout(function(){
    $('.fancybox-close').click();
}, 6000);

0voto

Yemmill Punkte 1

Das funktioniert bei mir...

    <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 = /*@cc_on!@*/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>

Wenn Sie Ihren Browser überprüfen wollen, müssen Sie diesen Link aufrufen: http://jsfiddle.net/9zxvE/383/

0voto

Anton Ipatov Punkte 169

Standardoption verwenden data-fancybox-close

<div data-fancybox-close class="btn btn-s btn-small">back</div>

-1voto

Verwenden Sie das Ereignis "Schließen" der Fancybox:

document.getElementsByClassName("fancybox-item fancybox-close")[0].click();

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X