Pour l'instant il ne prend pas en compte le changement de classe
Non, ce n'est pas tout à fait ça...
Quand tu écris
$('#click.off').on("click", function(){...});
jQuery affecte à tous les éléments du document ayant la classe "off" l'action liée à l'événement.
Mais quand tu modifies la classe, les éléments recevant cette classe n'ont pas été "initialisés" donc le clic ne les concerne pas !
Il faut soit utiliser les événements délégués, soit gérer tous les éléments dans un même événement dans lequel tu différencieras ceux ayant la classe on de ceux ayant off.
En tout état de cause, lorsque tu affectes un événement, seuls les éléments présents dans le DOM au moment de l'affectation sont concernés.
Partager