older ecmascript-style element.on... event handlers don't stack, modern addEventListener (which jQuery's on/off tap into) stack infinitely.