2010-02-22 31 views
7

मैं वर्तमान माह में कुछ दिनों को हाइलाइट करना चाहता हूं। मैं इसे पहले महीने में कर सकता हूं, लेकिन "अगले महीने" या "पिछले महीने" के बाद एक नए महीने पर क्लिक नहीं किया गया है। मैंनेChangeMonthYear ईवेंट पर उपयोग करने का प्रयास किया लेकिन यह नए (या पिछला) महीने प्रस्तुत करने से पहले निष्पादित करता है।महीने बदलने के बाद Jquery डेटपिकर ट्रिगर (महीने के बाद प्रस्तुतकर्ता)

कोई विचार?

+0

यह मेरा एक, jQuery प्लगइन डेवलपर्स के साथ ही सबसे बड़ी शिकायत यह है - मैं अभी तक एक को देखने के लिए जहां वे कस्टम ईवेंट ट्रिगर कर ताकि आप और मैं जैसे लोगों के कुछ कस्टम कार्यक्षमता प्राप्त कर सकते हैं। –

+0

@ पीटर jQuery UI में उपयोग की जाने वाली प्रत्येक कस्टम ईवेंट को jQuery UI साइट पर विस्तार से दस्तावेज किया गया है। –

+0

@ एलेक्स, आप मेरी बात याद करते हैं। प्लगइन्स को अपनी घटनाओं को आग लगाना चाहिए ताकि माता-पिता स्क्रिप्ट उनको पकड़ सकें और कार्रवाई कर सकें। '$ (This) .trigger ('ui-datepicker: after-month-loaded') की तरह कुछ 'उपयोगकर्ता 278860 जो वह मांग रहा है उसे करने देगा - उसे केवल' $ .bind() ' –

उत्तर

1

शायद आपकी सबसे अच्छी पसंद beforeShowDay कॉलबैक होने जा रही है।

http://jqueryui.com/demos/datepicker/#event-beforeShowDay

आप पर जो कुछ भी अपनी तिथि मापदंड है आधारित, सेल के लिए एक नया वर्ग के नाम निर्दिष्ट कर सकते हैं।

1

आप कस्टम "रेंडर कॉलबैक" का उपयोग कर अपने jQuery datepicker के साथ ऐसा कर सकते हैं।

उदा This example सप्ताहांत को अक्षम करता है और उन दिनों स्टाइल के लिए एक कक्षा जोड़ता है। वहाँ अन्य अधिक complex examples के बहुत सारे जो भी मदद कर सकता है ...

$('.date-pick') 
    .datePicker(
     { 
      renderCallback:function($td, thisDate, month, year) 
      { 
       if (thisDate.isWeekend()) { 
        $td.addClass('weekend'); 
        $td.addClass('disabled'); 
       } 
      } 
     } 
    ); 

भी कर रहे हैं, यदि आप पसंद करते हैं, वहाँ एक dpMonthChanged घटना है एक बार कैलेंडर फिर से गाया गया है और आप कर सकते हैं कैलेंडर की सामग्री पर पाश और अपने हाइलाइटिंग कर ...

0
 hack: 
     $('#calendar').datepicker({ 
            onChangeMonthYear: function (year, month, inst) { 
             setEventsDay() 
            } 
           }); 
function setEventsDay(){ 
    var days = $(".ui-state-default"); 
        console.log(days.length); //31 from august to Sep 
     setTimeout(function() { 
        var days = $(".ui-state-default"); 
        console.log(days.length);  //30 `enter code here`from august to Sep 

       }, 100) 
    }