2010-12-09 8 views
16

मैं एक पॉपअप बना सकते हैं और Iframe का उपयोग करके उस पर एक और पेज लोड करने के लिए fancy box उपयोग कर रहा हूँ। यहां मेरा कोडबटन से एक jQuery fancybox बंद करने के लिए कैसे क्लिक

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

यह पृष्ठ को सफलतापूर्वक लोड करता है और सामान करता है। लेकिन पॉपअप फॉर्म को बंद करने के बजाय, यह पॉपअप स्रोत के रूप में पॉपअप स्रोत फ़ॉर्म को लोड करता है। जब काम पूरा हो जाता है तो मैं पॉपअप फॉर्म को बंद करना चाहता हूं और मुख्य मेन्यू पेज पर वापस आना चाहता हूं जिससे पॉपअप उत्पन्न हुआ था। पॉपअप फॉर्म के बटन क्लिक पर मैं इसे कैसे प्राप्त करूं।

सादर, रंगना

उत्तर

34

कॉल $.fancybox.close();

भी http://fancybox.net/faq

के अनुसार post

में इस जवाब पर देखने के लिए

  1. कैसे कर सकते हैं मैं अन्य तत्व से फैंसीबॉक्स बंद कर देता हूं? ?

बस $.fn.fancybox.close()

पर अपने onClick ईवेंट फोन तो आप बस fn में जोड़ने के लिए सक्षम होना चाहिए।

+2

आपको बहुत धन्यवाद हैम इग्गी! –

+3

मेरे पास फैंक्सबॉक्स का संस्करण 2 है और यह काम नहीं किया ... हालांकि, माता-पिता। $ Fancybox.close(); काम किया! –

6

आप इनलाइन कॉल का उपयोग कर सकते

<input type="button" onclick="$.fancybox.close()" value="CloseFB" /> 

या या तो आप onClickevent

2

$.fn.fancybox.close() में

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

कॉल समारोह बुलाया फ़ंक्शन का उपयोग करें संस्करण 2.x के लिए काम नहीं करता है सकते हैं, वास्तव में, यह एक त्रुटि उठाता है। यदि आप संस्करण 2.x का उपयोग कर रहे हैं, तो इसके बजाय $.fancybox.close(true) आज़माएं।

13

मुझे parent.jQuery.fancybox.close() का उपयोग ड्रूपल साइट के साथ ठीक से काम करने के लिए किया गया था। करीब पॉपअप, और करीब fancybox:

2

मेरे करीबी बटन की वजह से विभिन्न कार्यों है। घटना को रोकने के लिए इसे e.stopPropagation() का उपयोग करने की आवश्यकता है;

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

यह मेरे लिए काम करता है ...

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

+0

लिंक मर गया है –

1

सरल उपाय बंद करने के लिए लिंक मिल (यह एक वर्ग fancibox-पास है) और 6 सेकंड में यह कर (या 6000 मिलीसेकंड) fancybox की

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

उपयोग घटना बंद करें बटन:

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

यह एक पुराना धागा है लेकिन मैंने सोचा कि मैं अपने दो सेंट साझा करूंगा।

मैं onclick घटना का उपयोग कर और कई प्रयासों के बाद भी, यह मेरे लिए चाल किया fancybox आइफ्रेम बंद करने के साथ इसी तरह के मुद्दों रहा था: window.parent.jQuery.fancybox.close()

यहाँ एक का उपयोग कर एक उदाहरण है इनपुट बटन:

<input type="button" class="formbutton" value="Close" onClick="window.parent.jQuery.fancybox.close();" /> 

साथ ही, मैंने एंकर (ए) टैग पर ऑनलिक का परीक्षण किया और यह ठीक काम किया।

संबंधित मुद्दे