jQuery UI Datepicker को ui-state-highlight
कक्षा का उपयोग करके उपयोगकर्ता की स्थानीय तिथि को हमेशा हाइलाइट करने के लिए कोड किया गया है। इसे बदलने के लिए कोई अंतर्निहित विकल्प नहीं है।
.ui-state-highlight {
border: 1px solid #d3d3d3;
background: #e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x;
color: #555555;
}
हालांकि इस करता है, तो आप बहुत मददगार नहीं है:
एक विधि, संबंधित प्रश्नों के अन्य उत्तर में इसी तरह वर्णित, सीएसएस ओवरराइड करने के लिए के लिए उस वर्ग, अपने विषय की ui-state-default
मैच के लिए उदाहरण के लिए है गतिशील विषयों का उपयोग कर रहे हैं, या यदि आपका इरादा एक अलग दिन को हाइलाइट करना है (उदाहरण के लिए, "आज" क्लाइंट के बजाए आपके सर्वर की घड़ी पर आधारित होना चाहिए)।
एक वैकल्पिक तरीका डेटपिकर प्रोटोटाइप को ओवरराइड करना है जो वर्तमान दिन को हाइलाइट करने के लिए ज़िम्मेदार है।
यह मानते हुए कि आप यूआई जावास्क्रिप्ट, निम्नलिखित स्निपेट इन चिंताओं को दूर कर सकते हैं की एक कम से कम संस्करण का उपयोग कर रहे हैं।
अपने लक्ष्य वर्तमान दिन पूरी तरह उजागर करने को रोकने के लिए है:
// copy existing _generateHTML method
var _generateHTML = jQuery.datepicker.constructor.prototype._generateHTML;
// remove the string "ui-state-highlight"
_generateHtml.toString().replace(' ui-state-highlight', '');
// and replace the prototype method
eval('jQuery.datepicker.constructor.prototype._generateHTML = ' + _generateHTML);
इस से प्रासंगिक कोड (पठनीयता के लिए अधिकतम किए जाते) परिवर्तन:
[...](printDate.getTime() == today.getTime() ? ' ui-state-highlight' : '') + [...]
को
[...](printDate.getTime() == today.getTime() ? '' : '') + [...]
अपने लक्ष्य को "आज" के datepicker की परिभाषा को बदलने के लिए है, तो:
[...]var today = new Date();[...]
रहे हैं:
var useMyDateNotYours = '07/28/2014';
// copy existing _generateHTML method
var _generateHTML = jQuery.datepicker.constructor.prototype._generateHTML;
// set "today" to your own Date()-compatible date
_generateHTML.toString().replace('new Date,', 'new Date(useMyDateNotYours),');
// and replace the prototype method
eval('jQuery.datepicker.constructor.prototype._generateHTML = ' + _generateHTML);
इस से प्रासंगिक कोड (पठनीयता के लिए अधिकतम किए जाते) में परिवर्तन
[...]var today = new Date(useMyDateNotYours);[...]
// Note that in the minimized version, the line above take the form `L=new Date,`
// (part of a list of variable declarations, and Date is instantiated without parenthesis)
के बजाय
useMyDateNotYours
आप निश्चित रूप से एक स्ट्रिंग, फ़ंक्शन, या जो कुछ भी आपकी आवश्यकताओं के अनुरूप हैं इंजेक्ट कर सकते हैं।
आपका कोड सही है, तो आप कुछ और जानकारी जोड़ सकते हैं? – Keeper
आपकी समस्या क्या है? आपका कोड ठीक काम करता है। [इसे यहाँ देख] (http://jsfiddle.net/MNBjS/) – Reigel