Another thing you can try is attach the handler directly to the load event for each image:

$("img").load(function() {
alert('image ' + this.src + ' is loaded and has width ' + $(this).width());
});

This should work ok within document.ready, as the img tags will be loaded in the DOM and have the event handler bound before the images themselves are loaded.

-- Josh

----- Original Message ----- From: "Andy Matthews" <[EMAIL PROTECTED]>
To: "jQuery (English)" <jquery-en@googlegroups.com>
Sent: Wednesday, October 29, 2008 11:37 AM
Subject: [jQuery] Re: Getting width of broken image?



Hrm...

That "worked", but it's taking longer than I'd like, and it's not
really consistent. I'll just go another route. Thanks for the input
guys.

On Oct 29, 11:44 am, "Josh Nathanson" <[EMAIL PROTECTED]> wrote:
Andy - window.onload is called only after all images are loaded, so you can
do this:

$(window).load(function() {
$("img").each(function() {
alert( this.offsetWidth>500 );
});

});

-- Josh

----- Original Message -----
From: "Andy Matthews" <[EMAIL PROTECTED]>
To: "jQuery (English)" <jquery-en@googlegroups.com>
Sent: Wednesday, October 29, 2008 9:24 AM
Subject: [jQuery] Re: Getting width of broken image?

Okay...

I figured out why it's not working. My code is firing before the
images are fully loaded, therefore the width of the image is zero
until the browser downloads the image.

I installed a click event on each image which reported the actual
width correctly.

So, how might I only run this code AFTER the images have loaded?

$('img').each(function(){
alert(this.offsetWidth>500);
});

Alternately, is there a way to test to see if the image is broken
using jQuery?

On Oct 29, 10:54 am, ricardobeat <[EMAIL PROTECTED]> wrote:
> Besides the bracket weidc mentioned, is your document valid?

> I get the correct image width by using width() on both IE and FF.
> Alternatively you can check for the offsetWidth attribute.

> $('img').each(function(){
> alert(this.offsetWidth>500);

> });

> On Oct 29, 11:30 am, "Andy Matthews" <[EMAIL PROTECTED]>
> wrote:

> > I'm loading in a batch of images dynamically. Some of the images might
> > not
> > exist and I'm wondering how I might test for that image using jQuery
> > (1.2.6). All I really want to do is to remove that img from the DOM so
> > that
> > it doesn't show on the page.

> > I thought at first it would be simple enough to test the width of the
> > image.
> > All the valid images should be around 600 pixels wide, whereas the
> > broken
> > image should be 30 or so.

> > I tried this:

> > ${'img').each(function(){
> > alert( $(this).width() );

> > });

> > But I got 0 for both a valid, and invalid, image. Anyone have any > > ideas?

> > andy

Reply via email to