2010-05-25 23 views
5

Ho un jquery datepicker e devo essere in grado di cambiare il colore di sfondo per la data di cella selezionata. Sto cercando con qualcosa di simile:Come cambiare il colore della cella di un jquery datepicker

$("#fecha").datepicker({ 
      onSelect: function(value, date) { 
      alert(date.css()); 
      } 
    }); 

sperando che il parametro data si riferisce alla cella selezionata, ma non sembra funzionare.

Qualche suggerimento?

// Modifica: // La soluzione dovrebbe consentire di avere celle diverse con diversi colori impostati dinamicamente, ecco perché sto provando con onSelect invece di modificare direttamente il CSS.

Lo scopo è quello di avere un calendario con eventi stabiliti dall'utente.

Grazie in anticipo.

+0

Se un dato risposta funziona si prega di contrassegnare come la "risposta" per aiutare tutti gli altri. Ciò consente di evitare domande doppie. –

+0

Lo so, ma mi sono espresso male per cui ho modificato la domanda e aspetto delle risposte prima di contrassegnare quella corretta. Grazie comunque per la risposta! : D – MazarD

+0

Purtroppo non penso sia possibile. Hai accesso al callback onSelect, tuttavia i contenuti di DatePicker vengono anche ridisegnati e non so se questo può essere fermato. Ma la nuova risposta che ho dato avrebbe funzionato se si riuscisse a far ridisegnare il raccoglitore di date. –

risposta

9

Penso che il modo migliore (supponendo che io vi ho capito bene) è quello di ignorare semplicemente il CSS.
Nel foglio di stile sito o testata html si solo bisogno di ignorare il seguente selettore css

.ui-datepicker-current-day .ui-state-active { background: #000000; } 

EDIT

Con la modifica in mente, il seguente dovrebbe funzionare (supponendo che si può ottenere il DatePicker per smettere di rinfrescare)

onSelect: function(value, date) { 
    date.dpDiv.find('.ui-datepicker-current-day a') 
     .css('background-color', '#000000'); 
} 
+0

Ma se lo faccio sovrascrivere il css non mi permetterebbe di avere più celle con colori diversi, giusto? – MazarD

+0

Contrassegnate la vostra risposta come corretta perché è la migliore approssimazione, comunque non ho smesso di rinfrescare la cosa, quindi ho deciso di scrivere il mio calendario degli eventi.Grazie per l'interesse e l'aiuto !! – MazarD

+0

Non preoccuparti, potresti sempre dare un'occhiata alla data molto robustaPicker fatta da Kelvin Luck però - http://www.kelvinluck.com/assets/jquery/datePicker/ –

0

cambiamento nella vostra css classe .ui-datepicker-current-day

+0

con il modo in cui il css è strutturato in jQuery css, questo verrà sovrascritto in quanto il precedente è uguale a 10 in termini di valore dell'ordine in sequenza css. Il css richiede un valore di 20 o più (due classi) per sovrascrivere l'impostazione predefinita di jQuery ui css. –

0

Il DatePicker di default segue il tema. Ma puoi scavalcare qualsiasi cosa.

ui-state-active è lo stile della data selezionata. ui-state-highlight è lo stile utilizzato per identificare la data corrente.

Quindi fare qualcosa di simile:

#ui-datepicker-div .ui-state-active {color: #FFFFCC;} 

#ui-datepicker-div .ui-state-highlight {color: #DCDCDC;} 

Puoi piuttosto aggiungere questo css alla pagina o regolare il tema stesso.

0

Nel mio caso, ho bisogno di rimuovere classe attiva, in modo da:

$("#datepicker").datepicker({ 
    onSelect: function(dateText, inst) { 
    setTimeout(function(){ 
     inst.dpDiv.find('.ui-datepicker-current-day a').removeClass('ui-state-active'); 
    }, 50); 
    } 
}); 
Problemi correlati