Correction:

IE7 is a bit messy. On first load, the .complete property goes from
'false' to 'true' correctly and the load event is not fired. However,
after the image is cached, .complete is always false, readyState is
always == 'complete' and both readystatechange and load fire. I ended
up writing an idea for the patch suggested:

(jQuery.fn.) load : function(fn){
  return fn ?
    this.is('img') ?
      this.bind('load readystatechange', function(e){
        if( this.complete || (this.readyState == 'complete' && e.type
== 'readystatechange') )
          fn();
        })
    : this.bind('load', fn)
  : this.trigger('load');
}

Is there any other possible way of implementing this? I'm not aware of
all the variables involved.

cheers,
- ricardo


On Feb 9, 4:41 pm, Ricardo Tomasi <[email protected]> wrote:
> What guarantee you have that the image will be loaded in the next
> 100ms?
>
> The real fix is simple:
>
> $('<img/>').bind('load readystatechange', function(){
>   if (this.complete)
>      alert('loaded');
>
> }).attr('src',...).appendTo('body');
>
> On Feb 8, 10:28 am, Jomange <[email protected]> wrote:
>
> > try this
> > $(function(){
> >      window.setTimeout(
> >          function mi(){
> >              $('<img>').load(function()
> >  { alert ('Not called in IE 6')   }).attr('src',src).appendTo('body');
> >          }
> >          ,100
> >      );
> >   })
> > Worked for me
> > On Jan 19, 7:23 pm, grigori <[email protected]> wrote:
>
> > > Sample:
>
> > > <html><head>
> > > <script src="js/jquery-1.3.min.js"></script>
> > > <script>
> > > var src="http://www.google.com/intl/en_com/images/logo_plain.png";;
>
> > > $(function(){
> > >     window.setTimeout(
> > >         function mi(){
> > >             $('<img>').attr('src',src).appendTo('body').load(function()
> > > { alert ('Not called in IE 6')   });
> > >         }
> > >         ,100
> > >     );
>
> > > })
>
> > > </script>
> > > </head><body></body></html>
>
> > > Works in IE7, FireFox, but not in IE 6.
> > > Is it expectable?
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"jQuery Development" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/jquery-dev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to