I have some code I am trying to run once my image has finished loading. I use this following jQuery code:
$("#myimageid").load(function() {
alert('Image Loaded');
});
However the popup never show up. I can开发者_开发知识库't get the .load() function to work ! Anyone had issues with this?
If you're running this after the image already has a set source, you need to do an additional check for caches images (who fired the event, just before you added an event handler listening for it). You can do that like this:
$("#myimageid").on('load', function() {
alert('Image Loaded');
}).each(function() {
if(this.complete) $(this).load();
});
Update for later versions of query, use:
if(this.complete) $(this).trigger('load');
Using (this).load();
will produce a Cannot read property 'indexOf' of undefined
error
What happens when you clear your browser's cache and try the script again? From the jQuery load()
docs:
It is possible that the load event will not be triggered if the image is loaded from the browser cache. To account for this possibility, we can use a special load event that fires immediately if the image is ready. event.special.load is currently available as a plugin
In general, it is not necessary to wait for all images to be fully loaded. If code can be executed earlier, it is usually best to place it in a handler sent to the .ready() method.
So it sounds like your cached image isn't triggering the load event, so you may want to try the plug-in that's mentioned. You can find the JS file to download here.
Hope this helps!
精彩评论