2010-08-13 24 views
5

मेरे पास एक संपादन फ़ॉर्म है जिसे मैं Jquery उपकरण का उपयोग करके ओवरले के रूप में प्रदर्शित कर रहा हूं।jQuery टूल्स: ओवरले को कैसे बंद करें?

मेरी ऑब्जेक्ट सूची दृश्य पृष्ठ पर, प्रत्येक ऑब्जेक्ट में <a href="#" class="edit_button">Edit</a> है। इन सभी के साथ एक ही ओवरले रूप से जुड़े होते हैं:

<a href="#" class="cancel">Cancel</a> 

मैं इस को रद्द बटन ओवरले को बंद कर सकते हैं:

 $(".edit_button[rel]").overlay({ top: '5px', 
      fixed: false, 

      mask: { 
       color: '#ebecff', 
       loadSpeed: 200, 
       opacity: 0.9 
      } 
     }); 

संपादित रूप ओवरले रद्द बटन होता है? ऐसा लगता है कि ओवरले एपीआई ऑब्जेक्ट तक पहुंच प्राप्त करने का एकमात्र तरीका उस चयनकर्ता का उपयोग करना है जिसने इसे बनाया - इस मामले में $('.edit').each() क्योंकि मुझे नहीं पता कि किसने ओवरले को ट्रिगर किया था।

क्या मैं सच में करना चाहते हैं की तरह कुछ है:

$('.cancel').click(function(e){ 
    var target = e.originalTarget || e.srcElement; 
    $(target).parent().parent().getOverlay().close(); 
}); 

लेकिन यह काम नहीं करता।

$(".edit_button[rel]").each(function() { 
    $(this).overlay().close(); 
}); 

:

वहाँ किसी भी तरह से मैं कर के बिना ओवरले को बंद कर सकता है?

उत्तर

2

आप आसानी से अधिक समापन CSS वर्ग नाम "बंद" उन्हें बताए ओवरले अंदर तत्वों को जोड़ सकते हैं द्वारा बस। इन तत्वों को स्टाइल किया जा सकता है और आप ओवरले के अंदर किसी भी तरह से स्थानांतरित कर सकते हैं।

तुम पास विन्यास चर के लिए एक मूल्य की आपूर्ति करते हैं, तो करीब तत्व स्वत: जनरेट और आप समापन तत्व (रों) खुद को परिभाषित करने की जरूरत नहीं है।

तो यदि आप <a href="#" class="cancel close">Cancel</a> डालते हैं तो इसे काम करना चाहिए।

+0

आपके उत्तर के लिए धन्यवाद। दुर्भाग्यवश यह काम नहीं करता है :-( – Roger

+0

क्षमा करें। मैं फिर से प्रयास करूंगा, मेरा संपादन देखें। –

+0

अब काम करता है। धन्यवाद – Roger

1

जावास्क्रिप्ट के साथ मॉडल को बंद करने के (स्वचालित रूप से बंद बटन पर क्लिक के बिना):

$('#ID OF YOUR MODAL a.close').trigger("click"); 

या यदि आप (मेरे जैसे) एक iframe में कर रहे हैं, माता-पिता डाल दिया। $ से पहले।

+0

बहुत अच्छा समाधान – Azd325

1

क्या प्रदान किया गया क्रॉस पर विस्तार। आप केवल एक ओवरले एक ही बार में खुला है, तो (जो तार्किक रूप से आप क्या करेंगे) तो आप शायद यह अधिक सामान्य दृष्टिकोण का उपयोग कर सकते हैं:

$('a.close').trigger('click'); 

मुझे आशा है कि इस मदद करता है!