2015-03-21 11 views
5

मैं एक कैलेंडर सुविधा बनाने की कोशिश कर रहा हूं जिसमें उपयोगकर्ता प्रारंभ और समाप्ति तिथियों का चयन करके एकाधिक दिनांक सीमाओं को अवरुद्ध कर सकता है। मैं FullCalendar का उपयोग करने के बारे में सोच रहा था लेकिन मुझे यकीन नहीं है कि इसके साथ कैसे आगे बढ़ना है।पूर्ण कैलकुलेटर से एकाधिक दिनांक सीमाओं का चयन कैसे करें?

मैंने कुछ उदाहरणों को देखा है कि dayClick पर मेरी जांच जोड़कर कुछ तिथियों को कैसे ब्लॉक किया जाए, लेकिन ये दिनांक सीमाओं से निपटते नहीं हैं। मैं किसी भी मदद की सराहना करता हूं, मैं वास्तव में पूरे स्रोत की तलाश नहीं कर रहा हूं लेकिन इस बारे में कुछ सुझावों के बारे में कुछ सुझाव देता हूं।

उत्तर

13

यह एक बहु-पक्ष समस्या है। यहां मूल विचार है।

  • उपयोगकर्ता select कॉलबैक में selectable: true
  • साथ एक क्लिक + खींचें चयन करने के लिए, addEventSource के साथ एक background event जोड़ने की अनुमति दें।
  • ईवेंट जोड़ते समय, इसे एक कस्टम प्रॉपर्टी दें: block: true
  • selectOverlap के लिए एक कस्टम फ़ंक्शन का उपयोग करें जो event.block पर गलत लौटाता है।

कुछ इस तरह JSFiddle पसंद है।

selectable: true, 
select: function (start, end, jsEvent, view) { 
    $("#calendar").fullCalendar('addEventSource', [{ 
     start: start, 
     end: end, 
     rendering: 'background', 
     block: true, 
    }, ]); 
    $("#calendar").fullCalendar("unselect"); 
}, 
selectOverlap: function(event) { 
    return ! event.block; 
} 

पृष्ठभूमि घटनाएं वैकल्पिक हैं, लेकिन यह आमतौर पर वांछित (दृश्यमान) होती है।

यदि पहले से बनाई गई घटनाओं को खींचना और छोड़ना वांछित है, तो आप eventOverlap में selectOverlap फ़ंक्शन का भी उपयोग कर सकते हैं।

+0

वाह। यह मेरी अपेक्षा से अधिक है। आपकी सहायता के लिए धन्यवाद! –

+0

मैं अभी शीर्ष भाग पोस्ट करने जा रहा था, लेकिन फिर मुझे एहसास हुआ कि मुझे पहले से ही एक पहेली थी जो केवल 3 लाइनों की तरह गायब थी। – slicedtoad

+0

यदि मैं पूछ सकता हूं, तो मैंने उपयोगकर्ताओं को दिनांक सीमाओं को अचयनित करने के लिए 'अचयनित: सत्य' जोड़ने का प्रयास किया है, यह इसे पहचान नहीं रहा है। क्या हमें किसी तरह का कॉलबैक पास करना है? –

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