I had the same problem and found a solution. I believe that jquery's custom event handling is tied to the instance of jquery loaded on the page, so the iframe is adding events to its own jquery context, and not the one of the parent.
Edited: So the trick is to just use the jquery from the parent, as in parent.$(parent.document) etc.
Now when you add custom events they will work. Here's what worked for me :
Maybe it's because it's late in the afternoon, or because I'm slow... but could someone please explain brunolm's solution please? Here I am attempting to bind from the child iFrame to an event in the parent frame, and the following worked like a charm!
parent.$(parent.document).bind(...); // Worked to let me bind to the parent doc
He indicated that the above uses the jQuery from the parent scope', but I am curious about the syntax that makes that happen. Could someone please elaborate as I would really like to understand exactly why this solution works.