I haven't tried without setTimeout, but I think it's generally a good idea to avoid sending events directly from within event handlers. I'll give another try though...