2012-02-14 24 views
8

क्या एडम शॉ के jquery पूर्ण कैलेंडर में कॉलबैक है जिसे कैलेंडर पूरी तरह से प्रस्तुत करने के बाद बुलाया जाता है ?? मैं क्लाइंट पक्ष पर सभी घटनाओं को प्राप्त करने के लिए उस कॉल में क्लाइंट एवेन्ट्स फ़ंक्शन को कॉल करना चाहता हूं। मैंने इसे देखने में करने की कोशिश की थी, लेकिन घटनाओं को प्रस्तुत करने से पहले इसे कहा जाता है और क्लाइंट एवेन्ट्स 0 घटनाएं देता है।jquery पूर्ण कैलेंडर: कॉलबैक 'कैलेंडर' के बाद पूरी तरह से लोड हो गया है

+0

कोई भी ..... मैं यहां फंस गया हूं :( – khizar

उत्तर

10

दरअसल आप इसे अपने आप जोड़ सकते हैं। fullcalendar.js इस

function render(inc) { 
    if (!content) { 
     initialRender(); 
     trigger('complete', null, true); 
    }else{ 
     calcSize(); 
     markSizesDirty(); 
     markEventsDirty(); 
     renderView(inc); 
     trigger('complete', null, true); 
    } 
} 

की तरह में समारोह render को अद्यतन करने और प्रारंभिक कॉल कॉलबैक फ़ंक्शन पर जोड़ें:

$('#calendar').fullCalendar({ 
     editable: true, 
     complete: function() {alert('complete');}, 

या, जैसा कि आप चाहते हैं तो आप सभी घटनाओं का उपयोग कर सकते

complete: function() { 
     var events = $(this).fullCalendar('clientEvents'); 
     for(var i in events) 
     { 
      alert(events[i].title); 
     } 
    }, 
+0

thanx प्रतिक्रिया के लिए बहुत कुछ है, मैं परीक्षण और पोस्ट कर दूंगा, लेकिन मुझे लगता है कि मुझे यह चाहिए कि मुझे – khizar

+0

@khizar यह प्रारंभिक कॉल के लिए काम करता है , लेकिन इसे ईवेंट अपडेट और अन्य कार्रवाइयों के लिए जांचें, क्योंकि इसे फिर से ट्रिगर किया जा सकता है - मैंने कोड में गहराई से नहीं देखा। – Cheery

+0

ठीक है, मैं बहुत तंग समय सीमा पर हूं और मेरे पास आपके समाधान का परीक्षण करने का समय नहीं है मेरी पोस्ट का समय और आपका जवाब, मैं आसपास के काम की तलाश में था और पूरी तरह से अस्थायी समाधान के रूप में, मुझे क्लाइंट एवेन्ट्स को लोडिंग विकल्प में कॉल करके पूरा किया गया था जब ईवेंट खत्म हो रहा था। लेकिन मैं अभी भी आपका स्वीकार करूंगा जवाब coz यह पूरी तरह से तार्किक रूप से ठीक लग रहा है :) और इसे बाद में पूरी तरह से परीक्षण करें। – khizar

18

मुझे पता है कि यह पोस्ट अब पुरानी है, लेकिन अगर यह कोई मदद है, तो आपको चेरी द्वारा सुझाए गए मूल स्रोत को संशोधित करने की आवश्यकता नहीं है (हालांकि उसका जवाब ठीक काम करता है)।

आप, साथ ही कॉलबैक 'लोड हो रहा है' जो जगह में पहले से ही है का उपयोग कर सकते हैं:

$('#calendar').fullCalendar({ 
    loading: function(bool) { 
     if (bool){ 
     alert('I am populating the calendar with events'); 
     } 
     else{ 
     alert('W00t, I have finished!'); 
     // bind to all your events here 
     } 
    } 
); 
+10

में 'eventAfterAllRender' पर एक नज़र डालें, ध्यान देने योग्य: लोडिंग केवल तभी काम करती है जब आपकी घटनाओं को कहीं से लोड किया जाना चाहिए (IE, फ़ंक्शन कॉल या यूआरएल के माध्यम से)। यदि आप बस JSON के रूप में अपनी घटनाओं को पार कर रहे हैं, तो लोड हो जाएगा (कम से कम 1.5.5) आग नहीं। – AlexeyMK

5

यह अब रास्ता पुराना हो सकता है, लेकिन वर्तमान में एक अधिकारी कॉलबैक फ़ंक्शन (संस्करण 1.6 में जोड़ा गया) है: eventAfterAllRender । कोई स्रोत कोड संशोधन की आवश्यकता नहीं है।

+1

ईवेंट का उपयोग करने के बाद, सभी घटना लोड पर यह आग लगती है। क्या होगा यदि आप सिर्फ एक ही आग चाहते हैं? – cbloss793

+1

सच है, लेकिन आप केवल पहले रन पर एक चरणीय जांच कर सकते हैं। पूर्व: अगर (hasAlreadyRun) वापसी; –

+0

यही मैंने किया था। बस सुनिश्चित करें कि आपके चर के पास उचित दायरा है ताकि यह केवल फ़ंक्शन के लिए स्थानीय न हो और फिर उस फ़ंक्शन को फिर से चलाने से पहले नष्ट हो जाए। बाहरी स्रोतों के साथ –

0

व्यूअरेंडर ईवेंट इसका उत्तर है; लोडिंग केवल सामग्री लोडिंग के लिए काम करता है।

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