2009-08-24 17 views
8

Używam beforeShowDay i przypisałem klasę specialDay do określonych dni w moim kalendarzu; działa to dobrze, ale mam problem ze zrozumieniem, jak styl klasy i jak działa css z walca tematycznego. Próbowałem:Modyfikuj datakicker jquery z CSS z beforeShowDay

td .specialDate { 
    background: #33CC66; 
} 

, ale nie ma to wpływu na wygląd kalendarza. Jakieś pomysły?

Odpowiedz

0

Zawsze, gdy używam interfejsu użytkownika JQuery, używam Firebug do sprawdzania stylów zastosowanych do poszczególnych elementów, co pozwoli ci łatwo zidentyfikować elementy CSS, z którymi chcesz się bawić.

+0

używam Firebug, iThink że obecny styl jest stosowany od domyślnej rolkowym motyw CSS: .ui-state-default, .ui-widget-content.ui-state-default { -moz-background-clip: border; -moz-background-inline-policy: continuous; -moz-background-origin: padding; tło: # 75C8FF url (images/ui-bg_glass_75_75C8FF_1x400.png) repeat-x scroll 50% 50%; border: 1px solid # 3A9EE0; kolor: # 555555; font-weight: normal; outline-color: -moz-use-text-color; styl: brak; outline-width: medium; Moje pytanie brzmi: jak zmodyfikować komórki za pomocą klasy .specialDay, która ma już powyższe zastosowanie? –

15

Miałem ten sam problem, na szczęście znalazłem odpowiedź. Po wyłączeniu dnia (ustawionego na "false") można przypisać klasę (".specialDate"), aby zmienić kolor tła, ale nie, jeśli data jest włączona, ponieważ mamy kolejną stylizowaną kotwicę ("a") która przesłania klasę przypisaną do kotwicy "td".

Dlatego, jeśli data jest włączona, aby wybrać i chcesz zmienić styl, trzeba zmodyfikować odziedziczone „a” kotwicę, tak:

.specialDate a { background: #33CC66 !important; } 

To bardzo ważne, aby dodać "! important "(jeśli wybaczycie powtórzenie) wskazanie, aby zastąpić inne ustawienia.

Mam nadzieję, że to pomoże!

+0

To naprawdę ważny znak "! Important" po tle. Czy ktoś wie, dlaczego potrzeba tego zastąpienia? Jeśli go usuniemy, te domyślne wartości nadal będą wyświetlane. – Danmaxis

1
.specialDate span {background-color:#ff0000!important;} 

jeśli chcesz wyłączyć efekt przezroczystości

.specialDate {filter:Alpha(Opacity=100)!important; opacity: 1!important} 
4

Stwórz swój styl css tak:

<style type="text/css"> 
    td.specialDay, table.ui-datepicker-calendar tbody td.specialDay a { 
    background: none !important; 
    background-color: #fffac2 !important; 
    color: #006633; 
    } 
</style> 

Następnie dodać swój styl do kalendarza za pomocą opcji beforeShowDay.

$('#datepicker').datepicker('option', 'beforeShowDay', highlightDays); 


// ------------------------------------------------------------------ 
// highlightDays 
// ------------------------------------------------------------------ 
function highlightDays(date) { 
    for (var i = 0; i < dates.length; i++) { 
     if (SOME CONDITION TO DETERMIN SPECIAL DAY) { 
      return [true, 'specialDay']; 
     } 
    } 
    return [true, '']; 
} 
0

Oto fragment, który podświetli bieżącą datę lub datę z powiązanego pola tekstowego.

Styl:

.dateHighlight a { background: #58585a !important; } 

Skrypt:

var pickerDate; 
$("#pickerId").datepicker({ 
    // get the date to be highlighted; use today if no date 
    beforeShow: function() { 
     pickerDate = $("#pickerId").datepicker("getDate"); 
     if (pickerDate == null) pickerDate = new Date((new Date()).setHours(0, 0, 0, 0)); 
    }, 
    // add css class to the date 
    beforeShowDay: function(date) { 
     if (date.getTime() == pickerDate.getTime()) { 
      return [true, 'dateHighlight', ''] 
     } 
     return [true] 
    } 
}); 
1

Jeśli kalendarz ui ma tematu, należy wyłączyć background-image atrybutu specialDate:

.specialDate a { 
    background-image: none !important; 
    background: #33CC66 !important; 
} 
0

Używanie po kliknięciu możesz zrobić wszystkie potrzebne css:

var checkin = $('.dpd1').datepicker() 
.on('click', function (ev) { 
     $('.datepicker').css("z-index", "999999999"); 
}).data('datepicker');