use .once instead of .on - fixes #1