Ich habe eine Chrome-Kalender-App, die den aktuellen Monat anzeigt. Ich habe auch die nächsten Schaltflächen Monat und Vormonat, die den nächsten und vorherigen Monat abhängig von dem Monat angezeigt werden. Allerdings möchte ich nur, dass der Kalender bis Dezember des aktuellen Jahres und Januar des aktuellen Jahres geht, also nachdem der Benutzer Dezember/Januar trifft, entferne ich den Event-Handler. Aber ich muss den Event-Handler wieder hinzufügen, wenn es nicht Dezember oder Januar ist. Wie soll ich das machen?Wie Sie einen Ereignis-Listener hinzufügen, entfernen und erneut hinzufügen?
var count = 0;
var updated = setInterval(function() {
var v = document.getElementById("CalendarMonth").innerHTML;
updatedMonth = months.indexOf(v);
}, 1000);
document.getElementById("nextMonth").addEventListener("click", nxtMonth);
function nxtMonth()
{
count = count +1;
if(nextMonth == 11)
{
console.log("the year has ended!");
document.getElementById("nextMonth").removeEventListener("click", nxtMonth);
}
else
{
nextMonth = updated + count;
//ideally, this would work. But for some reason it does not
document.getElementById("nextMonth").addEventListener("click", nxtMonth);
}
document.getElementById("previousMonth").addEventListener("click", prevMonth);
function prevMonth()
{
count = count -1;
if(previousMonth == -1)
{
console.log("the year has just started!");
document.getElementById("previousMonth").removeEventListener("click", prevMonth);
}
else if(count==-1)
{
previousMonth =1;
}
else
{
previousMonth = updated + count;
document.getElementById("previousMonth").addEventListener("click", prevMonth);
}
Dies funktioniert fast perfekt, aber "count" wird durcheinander gebracht, weil Sie den Knopf gedrückt halten können, um so zu zählen. Gibt es überhaupt einen Neustart, wenn es 11 erreicht? –