You need to put the code inside the $(document).ready function, it's not finding the iframe because the DOM is not loaded.
- ricardo On Sep 25, 12:36 pm, hubbs <[EMAIL PROTECTED]> wrote: > Well, I tried this, but again it is not working, I really must be > missing something. > > All I want to do it be able to click the link inside the iframe, and > have it append some HTML into the parent, and apply a click event as > well, that is all, seems simple! :) > > My test page: http://web2.puc.edu/PUC/files/bind.html > Iframe page:http://web2.puc.edu/PUC/files/iframe.html > > Thanks for all the help. > > On Sep 24, 3:02 pm, ricardobeat <[EMAIL PROTECTED]> wrote: > > > Hi, > > > This works for me (FF3) (code running in the parent frame): > > > $('#test',frames[0].document).click(function(){ //bind function to > > event from element *inside iframe* > > $('<b>TESTE</b>').appendTo('body').click(function(){ // append > > element to the *parent frame* and assing a click handler to it > > alert('test'); > > }); > > > }); > > > I might not be understanding clearly what you want, a test case or > > explanation of the functionality you are looking for might help. > > > cheers, > > - ricardo > > > On Sep 24, 1:27 pm, hubbs <[EMAIL PROTECTED]> wrote: > > > > Hi Ricardo, > > > > I am not appending an iframe, it is hardcoded. I am trying to append > > > to the parent document from within the iframe, and have the event in > > > the parent bound to the appended element from the iframe. > > > > On Sep 23, 11:49 pm, ricardobeat <[EMAIL PROTECTED]> wrote: > > > > > Hi, I can't test anything right now, but are you setting up the > > > > ready() function after appending the iframe? > > > > > On Sep 23, 9:11 pm, hubbs <[EMAIL PROTECTED]> wrote: > > > > > > Yeah, this really is not working. Could someone please help me to > > > > > understand how to make multiple frames use the same jquery instance so > > > > > I can resolve this problem? Do I need to resort to frame ready > > > > > plugin? I really don't want to... > > > > > > On Sep 17, 7:12 pm, ricardobeat <[EMAIL PROTECTED]> wrote: > > > > > > > Not sure but $(frames['frame'].document).ready() should work (from > > > > > > the > > > > > > parent window). > > > > > > > On Sep 17, 8:21 pm, hubbs <[EMAIL PROTECTED]> wrote: > > > > > > > > Ok, I am realizing it has to do with the do with the > > > > > > > $(document).ready > > > > > > > function. If I just use: > > > > > > > > $ = window.parent.$; > > > > > > > $("#hold").append('<a href="#">Inserted from iFrame</a> <br />'); > > > > > > > > In the iframe, it correctly adds the link to the parent, and it > > > > > > > gets > > > > > > > the event from livequery! Hooray!! > > > > > > > > But, obviously I need to add back a document ready function so > > > > > > > that I > > > > > > > can bind events within the iframe. How does that need to be done > > > > > > > in > > > > > > > this context? As I said, using the normal document ready does not > > > > > > > work. > > > > > > > > On Sep 17, 9:58 am, ricardobeat <[EMAIL PROTECTED]> wrote: > > > > > > > > > using the iframe's jQuery object: > > > > > > > > > $('.classinparentframe', parent.window.document) > > > > > > > > > Ideally if the contents of the iframe are always known to you, > > > > > > > > you > > > > > > > > should use only one instance of jQuery on the parent window and > > > > > > > > do all > > > > > > > > your stuff from it, it's simpler to debug also. > > > > > > > > > On Sep 16, 10:29 pm, hubbs <[EMAIL PROTECTED]> wrote: > > > > > > > > > > Thanks Ricardo. > > > > > > > > > > But what if I wanted to access the parent document from > > > > > > > > > WITHIN the > > > > > > > > > iframe? > > > > > > > > > > On Sep 16, 12:27 pm, ricardobeat <[EMAIL PROTECTED]> wrote: > > > > > > > > > > > You need to understand that a frame is another 'window' > > > > > > > > > > instance, it > > > > > > > > > > doesn't have the same jQuery object as the parent window > > > > > > > > > > unless you > > > > > > > > > > tell it to. So the '$' object you use in firebug console is > > > > > > > > > > always the > > > > > > > > > > one from the parent window. > > > > > > > > > > > If i'm not mistaken you can acess frame content with the > > > > > > > > > > parent > > > > > > > > > > window's jQuery object using $('.classinsidetheframe', > > > > > > > > > > frames['name'].document).css(); > > > > > > > > > > > On Sep 16, 1:48 pm, hubbs <[EMAIL PROTECTED]> wrote: > > > > > > > > > > > > Ok Brandon, > > > > > > > > > > > > I found this in another post: > > > > > > > > > > > > var doc = $('#testframe')[0].contentWindow.document; > > > > > > > > > > > $(doc.body).append('<span>test</span>'); > > > > > > > > > > > > This seems like it would help, but I am not sure how to > > > > > > > > > > > use this, > > > > > > > > > > > along with what you posted to get it working correctly. > > > > > > > > > > > Somehow > > > > > > > > > > > sending the GET within the context of the contentWindow > > > > > > > > > > > is confusing > > > > > > > > > > > me, and I just can't get it working. > > > > > > > > > > > > On Sep 15, 9:18 am, "Brandon Aaron" <[EMAIL PROTECTED]> > > > > > > > > > > > wrote: > > > > > > > > > > > > > To see what I mean run this in Firebug: > > > > > > > > > > > > $('iframe')[0].contentWindow.$ = $; > > > > > > > > > > > > > Then click on the link in the iframe and it will behave > > > > > > > > > > > > as you expect. > > > > > > > > > > > > > -- > > > > > > > > > > > > Brandon Aaron > > > > > > > > > > > > > On Mon, Sep 15, 2008 at 9:13 AM, Brandon Aaron <[EMAIL > > > > > > > > > > > > PROTECTED]>wrote: > > > > > > > > > > > > > > This would work if you used the frames parent > > > > > > > > > > > > > instance of jQuery. LiveQuery > > > > > > > > > > > > > works by monitoring the DOM methods within jQuery. > > > > > > > > > > > > > Since within the frame > > > > > > > > > > > > > you are using a new instance of jQuery, LiveQuery > > > > > > > > > > > > > will not be monitoring its > > > > > > > > > > > > > DOM methods. > > > > > > > > > > > > > -- > > > > > > > > > > > > > Brandon Aaron > > > > > > > > > > > > > > On Sun, Sep 14, 2008 at 11:04 PM, hubbs <[EMAIL > > > > > > > > > > > > > PROTECTED]> wrote: > > > > > > > > > > > > > >> I can confirm that using event delegation will fix > > > > > > > > > > > > >> this problem. I > > > > > > > > > > > > >> guess that it is just a problem with the LiveQuery > > > > > > > > > > > > >> plugin. Brandon, > > > > > > > > > > > > >> if you are where around here, could you comment on > > > > > > > > > > > > >> this? > > > > > > > > > > > > > >> Thanks. > > > > > > > > > > > > > >> On Sep 14, 2:29 pm, hubbs <[EMAIL PROTECTED]> wrote: > > > > > > > > > > > > >> > I have a working example of this, and would really > > > > > > > > > > > > >> > like help > > > > > > > > > > > > >> > understanding why bind or livequery does not bind > > > > > > > > > > > > >> > events to DOM > > > > > > > > > > > > >> > elements that are inserted from an iframe. > > > > > > > > > > > > > >> >http://web2.puc.edu/PUC/files/bind.html > > > > > > > > > > > > > >> > Clicking the "insert from frame" link will append > > > > > > > > > > > > >> > links to the parent > > > > > > > > > > > > >> > frame, which won't pick up the click event. But, > > > > > > > > > > > > >> > clicking the "insert > > > > > > > > > > > > >> > from body" link will append links within the same > > > > > > > > > > > > >> > frame and will > > > > > > > > > > > > >> > correctly have the click events bound. > > > > > > > > > > > > > >> > Why is this happening? > > > > > > > > > > > > > >> > On Sep 12, 9:02 pm, hubbs <[EMAIL PROTECTED]> > > > > > > > > > > > > >> > wrote: > > > > > > > > > > > > > >> > > I have been experiencing strangeness with trying > > > > > > > > > > > > >> > > tobindevents to DOM > > > > > > > > > > > > >> > > elements that have been inserted from a > > > > > > > > > > > > >> > > different frame using .get(). > > > > > > > > > > > > >> > > For some reason the elements don't be binded > > > > > > > > > > > > >> > > with the events if they > > > > > > > > > > > > >> > > are inserted from other frame. In testing, if I > > > > > > > > > > > > >> > > try the same > > > > > > > > > > > > >> thingwithinthe SAME frame the the events get binded > > > > > > > > > > > > >> correctly. > > > > > > > > > > > > > >> > > Am I missing something here? Is this a > > > > > > > > > > > > >> > > limitation of jQuery?