English 中文(简体)
j 图像负荷质量(即使图像有线)
原标题:jQuery callback on image load (even when the image is cached)

我想做的是:

$("img").bind( load , function() {
  // do stuff
});

但是,当图像被装在海滩上时,负荷活动就会起火。 http://api.jquery.com/load-event/"rel=“noreferer”> j Query docs/a> 建议,但

最佳回答
问题回答

Can 我建议你将其重新装入一个非DOM图像物体? 如果拖拉,这根本就不需要时间,上载仍然会火。 如果该图像是固定的,它将在装上图像时向上载火,这应当与DOM图像的版本一样。

Javascript:

$(document).ready(function() {
    var tmpImg = new Image() ;
    tmpImg.src = $( #img ).attr( src ) ;
    tmpImg.onload = function() {
        // Run onload code.
    } ;
}) ;

更新(处理多种图像,并妥善订购载荷查封):

$(document).ready(function() {
    var imageLoaded = function() {
        // Run onload code.
    }
    $( #img ).each(function() {
        var tmpImg = new Image() ;
        tmpImg.onload = imageLoaded ;
        tmpImg.src = $(this).attr( src ) ;
    }) ;
}) ;

我的简单解决办法是,它不需要任何外部gin,对共同案例来说,应该足够:

/**
 * Trigger a callback when the selected images are loaded:
 * @param {String} selector
 * @param {Function} callback
  */
var onImgLoad = function(selector, callback){
    $(selector).each(function(){
        if (this.complete || /*for IE 10-*/ $(this).height() > 0) {
            callback.apply(this);
        }
        else {
            $(this).on( load , function(){
                callback.apply(this);
            });
        }
    });
};

如此:

onImgLoad( img , function(){
    // do stuff
});

例如,在装上你的图像时,可以做到:

$( img ).hide();
onImgLoad( img , function(){
    $(this).fadeIn(700);
});

或者作为替代办法,如果你更喜欢一种类似于杂草的做法:

/**
 * Trigger a callback when  this  image is loaded:
 * @param {Function} callback
 */
(function($){
    $.fn.imgLoad = function(callback) {
        return this.each(function() {
            if (callback) {
                if (this.complete || /*for IE 10-*/ $(this).height() > 0) {
                    callback.apply(this);
                }
                else {
                    $(this).on( load , function(){
                        callback.apply(this);
                    });
                }
            }
        });
    };
})(jQuery);

并用于:

$( img ).imgLoad(function(){
    // do stuff
});

例如:

$( img ).hide().imgLoad(function(){
    $(this).fadeIn(700);
});

你们是否真的必须做 j? 页: 1 a. 直接与你形象有关的活动;

<img src="/path/to/image.jpg" onload="doStuff(this);" />

它每当图像装上时都会从海滩上燃烧。

您还可以使用该守则,支持装载错误:

$("img").on( load , function() {
  // do stuff on success
})
.on( error , function() {
  // do stuff on smth wrong (error 404, etc.)
})
.each(function() {
    if(this.complete) {
      $(this).load();
    } else if(this.error) {
      $(this).error();
    }
});

我只问过这个问题,在任何地方寻求一种解决办法,这种解决办法牵.杀害我的切身或下载一个假想。

我没有立即看到这一点,因此,我发现一些东西是令人感兴趣的固定点,(我认为)值得在这里张贴:

$( .image ).load(function(){
    // stuff
}).attr( src ,  new_src );

我实际上从这里的评论中得出这一想法:。 http://www.witheringtree.com/2009/05/image-load-event- binding-with-ie-using-jquery/

我不知道它为什么会发挥作用,但我已经通过E7测试了这一结果,并在它现在工作之前打破了。

希望会提供帮助,

Edit

接受的答复实际上解释了为什么:

如果该电弧已经固定下来,那么,在你接手此事之前,该事件就在所起诉的海滩上发射。

通过利用 j子制作带有图像弧的新形象,并直接为此分配负荷方法,当 j子完成制作新形象时,便能够成功使用负荷方法。 这在我工作期间为我做了8、9和10的工作。

$( <img /> , {
    "src": $("#img").attr("src")
}).load(function(){
    // Do something
});

A solution I found https://bugs.chromium.org/p/chromium/issues/detail?id=7731#c12 (This code taken directly from the comment)

var photo = document.getElementById( image_id );
var img = new Image();
img.addEventListener( load , myFunction, false);
img.src =  http://newimgsource.jpg ;
photo.src = img.src;

a. 修改GUS的例子:

$(document).ready(function() {
    var tmpImg = new Image() ;
    tmpImg.onload = function() {
        // Run onload code.
    } ;

tmpImg.src = $( #img ).attr( src );
})

在卸载之前和之后确定源。

仅仅在 im被定义后,就在一条单独的一条线上重新处理rc论点。 这将使信使会引诱vent。 很幸运的是,这是我迄今所看到的最简单的工作。

jQuery( <img/> , {
    src: url,
    id:  whatever 
})
.load(function() {
})
.appendTo( #someelement );
$( #whatever ).attr( src , url); // trigger .load on IE

如果你希望这样做的话,我会给你一个小ip子:

<div style="position:relative;width:100px;height:100px">
     <img src="loading.jpg" style= position:absolute;width:100px;height:100px;z-index:0 />
     <img onLoad="$(this).fadeIn( normal ).siblings( img ).fadeOut( normal )" src="picture.jpg" style="display:none;position:absolute;width:100px;height:100px;z-index:1"/>
</div>

如果你这样做的话,当浏览器画面时,它就没有问题总是显现出来,而是把 im装在真实的情景下。

我在IE身上有这个问题,在EEE中,这种目标就没有界定。 装载活动会火力,但我无法掌握电离层电离层中图像的尺寸。

引人注意:e. CurrentTarget. NaturalWidth &e. CurrentTarget. NaturalHal

国际环境法再次以自己(更复杂)的方式行事。





相关问题
Using QCView and iSight to capture image

I have a QCView that loads a Quartz file which gives you iSights feedback (basically like a QTCaptureView) Everything displays fine The button simply takes a snapshot using the following simple ...

Taking picture with QTCaptureView

Is it possible to simply take a picture and save it somewhere using a QTCaptureView and Apple s built-in iSight? I ve seen lots of tutorials on recording video but none on simply taking a picture. Any ...

Transform rectangular image into trapezoid

In .NET how can I transform an image into a trapezoid. The Matrix class supports rotation, shear, etc, but I can t see a trapezoidal transformation. I m using the usual System.Drawing.* API, but I m ...

Rotate image through Y-axis on web page

What are my options for rotating an image on a web page through the Y-axis? I m not sure if I even have the terminology right. Is this called a rotate or a transform. Most of the searches that I ve ...

Text as watermarking in PHP

I want to create text as a watermark for an image. the water mark should have the following properties front: Impact color: white opacity: 31% Font style: regular, bold Bevel and Emboss size: 30 ...

Editing a xaml icons or images

Is it possible to edit a xaml icons or images in the expression design or using other tools? Is it possible to import a xaml images (that e.g you have exported) in the expression designer for editing?...

Convert from 32-BPP to 8-BPP Indexed (C#)

I need to take a full color JPG Image and remap it s colors to a Indexed palette. The palette will consist of specific colors populated from a database. I need to map each color of the image to it s "...