2010-07-16 14 views
7
$("a[rel]").getOverlay().close(); 
$("a[rel]").close(); 

दोनों काम नहीं करते हैं।jQuery टूल्स: ओवरले को कैसे बंद करें?

$(document).ready(function() { 
     $("a[rel]").overlay({ 
      mask: '#3B5872', 
      effect: 'apple', 
      onBeforeLoad: function() { 
       var wrap = this.getOverlay().find(".contentWrap"); 
       wrap.load(this.getTrigger().attr("href")); 
      }, 
      onLoad: function() { 
       $('.contentWrap form').submit(function (event) { 
        event.preventDefault(); 
        $("a[rel]").overlay().close(); 
        hijack(this, update_employees, "html"); 
       }); 
      } 
     }); 
    }); 

    function hijack(form, callback, format) { 
     $.ajax({ 
      url: form.action, 
      type: form.method, 
      dataType: format, 
      data: $(form).serialize(), 
      success: callback 
     }); 
    } 

    function update_employees(result) { 
     $("#gridcontainer").html(result); 
    } 

कोई सुझाव?

मैं क्रोम का उपयोग करता हूं क्योंकि ऑनलोड घटना एफएफ में सही ढंग से काम नहीं करती है।

उत्तर

16
इस तरह

:

$("a[rel]").overlay().close(); 

उनकी पटकथा से ज्यादातर के लिए आप मूल विधि कॉल, उदा .overlay() फिर उस ऑब्जेक्ट पर the method you want पर कॉल करें।

+0

दुर्भाग्यवश यह मेरे लिए काम नहीं करता है। मैंने अपना प्रश्न संपादित किया। शायद आप जानते हैं कि वहां क्या गलत है। – Rookian

+0

@ रुकेयन - क्या आपको कहीं और जावास्क्रिप्ट त्रुटि मिल रही है? एपीआई बहुत सीधी आगे है, मैंने उपरोक्त कई साइटों के खिलाफ परीक्षण किया ...ऐसा लगता है कि कुछ और हस्तक्षेप कर रहा है। –

+0

कोई त्रुटि नहीं है। – Rookian

10

आप संपत्तियों में api:true निर्धारित करने की आवश्यकता है, तो आप js से इसे बंद करना चाहते:

var overlay = $("a[rel]").overlay({ 
    ... 
    api:true 
}); 

overlay.close(); 
+0

यह भी काम नहीं करता है :(ओवरले अभी भी खुला है – Rookian

+0

मेरे लिए काम करता है। कक्षा के नाम से ओवरले बंद करता है। धन्यवाद! – RredCat

5

समस्या, एक वर्ग के लिए ओवरले बताए के मामले में, कि वहाँ कई ओवरले तत्वों तो हो जाएगा, है सब बंद होना चाहिए:

$.each($(".caddy_grid"), function(i, v){$(v).overlay().close();}) 

वैकल्पिक रूप से, यह संभव है बंद करें बटन पर एक क्लिक के अनुकरण करने के लिए:

वर्ग कि मेरे मामले में ओवरले से चलाता है caddy_grid_overlay, तो बंद करें बटन पहुँचा जा सकता है के रूप में:

$('.caddy_grid_overlay .close').click(); 
1
$(document).ready(function() { 
    var overlayObject = $("a[rel]").overlay({ 
     top: 50, 
     expose: { 
        color: '#232323', 
        closeOnClick: true 
       }, 

       onClose:function() { 
        $('#reg-login').hide(); 
        $('#reg-register').hide(); 
       }, 
     effect: 'apple' 
});  
0

आप एक फ़ंक्शन बना सकते हैं और इसे किसी भी भी से कॉल कर सकते हैं।

यह फ़ंक्शन क्लास नाम और लिंक के आधार पर काम करेगा।

फ़ंक्शन बंदऑवरले() { अलर्ट ('aa'); var ओवरले = $ (\ "ए। शोओवरले \") ओवरले ({ एपीआई: सही });

overlay.close(); 
} 
संबंधित मुद्दे