I was under the impression all this time that .on() worked like .live() with regards to dynamically created elements (e.g. I use $(\'.foo\').
.on()
.live()
$(\'.foo\').
I think you face similar situation that i faced. this is quite a good solution for binding events withe elements generated later.
Binding Jquery Events On Elements Generated Through Other Events