2017-11-22 3 views
2

Ich möchte also nur ein ausgewähltes Datum in meiner Kalender-UI haben, aber wenn ich ein neues Datum drücke, ist das alte noch immer beleuchtet und ich kann alle drücken Tage in meinem Kalender und sie werden alle aufleuchten.Das vorher ausgewählte Datum wird im Kalender nicht deaktiviert

for(var dayCounter = 1; dayCounter <= currMonthDays; dayCounter++){ 

    tempListItem = document.createElement("li"); 
    tempListItem.innerHTML = dayCounter; 
    $(tempListItem).addClass("day"); 
    //add a hidden element to the day that we can access when we click on it 
    var temp = months[currMonth] +"/" + dayCounter +"/" + currFullYear; 
    $(tempListItem).append("<div class = 'hidden'>" + temp + "</div>"); 

    if(dayCounter == date.getDate() && currMonth == date.getMonth()){ 
     tempListItem.setAttribute("id", "current-day"); 
    } 

    ulDays.appendChild(tempListItem); 
} 
$(document).on("click", ".day", function() 
{ 
    var date = $(this).children(".hidden").text(); 
    console.log(date); 
    $(document.getElementById("current-day")).removeAttr("#current-day"); 
    $(this).attr("id", "current-day"); 
}); 

Nach der aktuellen Tag Klasse zu entfernen, sollte seine CSS nicht das Element verlieren?

+0

geben Sie Ihre HTML- – santosh

+0

Du fügst die ID als Attribut. Es sieht so aus, als ob du besser Klassen dafür verwenden würdest. Sie können dann die Klasse entfernen, anstatt die ID zu entfernen, die nicht wie eine gute Idee klingt ... – patrick

+0

@patrick Ich bekomme immer noch das gleiche Problem, nachdem ich es in eine Klasse geändert habe :( –

Antwort

0

Es sieht aus wie Sie ein kleines großes haben, wenn Sie versuchen, das id von current-day zu entfernen. removeAttr erwartet den Namen eines Attributs. In diesem Fall würde das Attribut sein id, so versuchen Sie dies:

$(document.getElementById("current-day")).removeAttr("id"); 
+0

Oooh okay, ich sehe, danke –

+0

Obwohl das funktionieren könnte, scheint es nicht klug zu sein, ID's Dynamic so zu machen. Das ist nicht der richtige Weg. Dafür gibt es Klassen. Also, für die Liebe von wem auch immer, ich hoffe, dass die Leute sich nicht entscheiden diese akzeptierte Antwort als die Lösung, wenn sie auf den gleichen Fehler stoßen !! – patrick

Verwandte Themen