2017-03-21 1 views
1

Ich versuche addClass in abwechselnden Samstagen. Ich habe 2 Methoden ausprobiert, aber keine funktioniert.Alternative Tage in Datepicker

# 1
Ich habe :odd zu jeder jeden tr. Demo Fiddle

$('.ui-datepicker-calendar tr:odd').each(function(){ 
    $(this).addClass('odd'); 
}); 

ButIf sieht Motte von Ende April und ab Mai ist nicht in ungeraden Zustand.

# 2
bekam ich einen noch ungeradeen Hack irgendwo in der Geige. Demo Fiddle

$('td.ui-datepicker-week-end .ui-state-default').each(function(i, el) { 
    if (i % 2 === 0) { 
    $(this).addClass('sat'); 
    } 
    else { 
    $(this).addClass('sun');     
    } 
}); 

$('.sat').each(function(i, el) { 
    if (i % 2 === 0) { 
    $(this).addClass('work-sat'); 
    } 
    else { 
    $(this).addClass('non-sat');  
    } 
}); 

Dies funktioniert gut, aber wenn Sie etwas weiter zurück Monat mit weiter, zurück Tasten ändern. es wird automatisch sogar ungerade und umgekehrt. Auch Auto-Wechsel nach einigen Monaten ändert sich automatisch.
Ich weiß nicht, warum passiert das?

Antwort

2

Der sicherste Weg, dies zu tun, ist das Jahr, Monat und Tag aus den Tabellenzellen zu lesen, und dann den

$('.ui-datepicker td .ui-state-default').each(function(i, el) { 
    var month = $(el).parent().attr('data-month'); 
    var year = $(el).parent().attr('data-year'); 
    var day = $(el).text(); 
    var date = new Date(year, month, day); 

    if (date.getDay() == 6) { 

     i += 1; 
     if (i % 2 == 0) { 
     $(el).addClass('work-sat'); 
     } else { 
     $(el).addClass('non-sat'); 
     } 
    } 
}); 

Tag Check Wenn ich die alternativen Samstage i gerade markiert machen = 0; bei der init und wenn onChangeMonthYear Funktion aufgerufen wird.

Sie können das Zeitlimit auch auf 1 setzen, damit die Markierung augenblicklich erfolgt.

Hier ist die vollständige Geige https://jsfiddle.net/jajoevjy/8/

+0

Hallo Liviu, Vielen Dank für Ihre Antwort. '$ (el) .parent() .attr ('Daten-Monat')' Datenattribute für Monat und Jahr sind nicht sichtbar auf lokal gleichen Code und die gleiche Version wurde implementiert. Aber in fiddle ist data-attr sichtbar. Weißt du, warum? – locateganesh

+0

Sie haben es überhaupt nicht auf dem Element, wenn Sie es untersuchen, oder erhalten Sie den Wert nicht mit jquery? –

+0

Ich habe den Grund. Ich benutze 'beforeShowDay' und dies deaktiviert. Ich muss 'beforeShowDay' verwenden, da ich einige andere zufällige Daten angegeben habe. – locateganesh

Verwandte Themen