Javascript: передача функции в качестве аргумента

Я хочу загрузить изображение по умолчанию, если изображение не загружается. Я также хочу вызвать getLoadComplete() после загрузки изображения. Как передать функцию this.getLoadComplete() в функцию, вызываемую в img.onerror?

Вот код, который я получил:

    img.onload = this.getLoadComplete();

    img.onerror = function(){
        img.src = "http://xxxx.com/image.gif";
     }

     img.src = request.url;

2 ответа

Решение
img.onload = this.getLoadComplete();

Вы вызываете getLoadComplete() немедленно, и присваивая его возвращаемое значение img.onload, Вы, вероятно, хотите это:

img.onload = this.getLoadComplete;

То есть установить img.onload самой функции, а не ее возвращаемое значение.

Вам не нужно делать ничего особенного в onerror; onload обработчик по- прежнему будет установлен в getLoadCompleteи когда вы изменяете src в вашем onerror обработчик, он будет вызывать onload после загрузки резервного изображения.

Вам просто нужно вызвать функцию.

img.onload = this.getLoadComplete();

img.onerror = function(){
    img.src = "http://www.3d-maps-minus-3d.com/img/unavailable.gif";
this.getLoadComplete();
 }
Другие вопросы по тегам