Geçerli ayı gösteren bir krom takvim uygulamasına sahibim. Ayrıca, hangi ayın görüntülendiğine bağlı olarak bir sonraki ve bir önceki aya gidip gelecek Ay ve Önceki ay düğmelerine sahibim. Ancak, takvimi yalnızca cari yılın Aralık ayına ve o yıla ait Ocak ayına kadar gitmesini isterim, bu yüzden kullanıcı aralık/ocak'a ulaştıktan sonra olay işleyicisini kaldırırım. Ancak, Aralık veya Ocak olmadığı zaman etkinlik işleyicisini tekrar eklemem gerekiyor. Bunu nasıl yapmalıyım?Etkinlik dinleyicisi nasıl eklenir, kaldırılır ve tekrar eklenir?
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);
}
Bu neredeyse mükemmel çalışır, ancak, "sayma" berbat olur çünkü düğmeye basmaya devam edebilirsiniz, böylece saymak için ekleyerek. 11 kez vurduğunda sayımı tekrar başlatmak için var mı? –