2016-07-29 11 views
0

ich versuche, den onerror von img mit einer Funktion zu binden. Image-Tag wird, wie dies in Jquery erstelltbind onerror mit dynamisch erzeugten Bild-Tag in jquery

this._img1 = $("<img>"); 

ist dies die Funktion

function imgError(image) { 
    image.onerror = ""; 
    image.src = '/Content/img/placeholder-profile.jpg'; 
    return true; 
} 

jetzt ich diese Funktion binden möchten mit onerror ... habe ich versucht, folgende Dinge und sie nicht funktionieren für me

this._img1.on("onError", "imgError(" + this._img1 + ")"); 

und

this._img1.prop("onError", "imgError(this)"); 

und

this._img1.error(function() { 
    _img1.src = '/Content/img/placeholder-profile.jpg'; 
}); 

kann mir jemand empfehlen, wie ich es erreichen kann?

+1

Was ist 'this._img1'? Ich denke, es ist ein DOM-Knotenelement, kein jq-Objekt. Sie müssen es also in das jq-Objekt einfügen, um die jq-Methode zu verwenden: '$ (this._img1) .on ('error', function() {_ img1.src = '/Content/img/placeholder-profile.jpg' ;}); '. Oder verwenden Sie die systemeigene Methode js, um das Ereignis –

+0

@A zu binden. Wolff 'Dies' ist das Hauptdiv-Element, in dem alle anderen Elemente eingeschlossen sind und in dem wir die Ergebnisse anzeigen. Es ist eigentlich der jquery-Widget-Aufruf. –

Antwort

0

können Sie diese Funktion einfach mit .error() von jquery erreichen. Binden Sie einen Ereignishandler an das JavaScript-Ereignis "error".

Type: Function(Event eventObject) 

Eine Funktion, die ausgeführt wird, wenn das Ereignis ausgelöst wird.

Das Fehlerereignis wird an Elemente wie Bilder gesendet, auf die von einem Dokument verwiesen wird und die vom Browser geladen werden. Es wird aufgerufen, wenn das Element nicht korrekt geladen wurde.

Betrachten wir zum Beispiel eine Seite mit einem einfachen Bildelement:

<img alt="Book" id="book"> 

Der Event-Handler kann das Bild gebunden sein

$("#book") 
    .error(function() { 
    alert("Handler for .error() called.") 
    }) 
    .attr("src", "missing.png"); 

Wenn das Bild nicht (zum Beispiel geladen werden kann, Da es an der angegebenen URL nicht vorhanden ist) wird die Warnung angezeigt:

Handler für .error() aufgerufen.

+0

ive versuchte das auch, wie Sie in meiner Frage sehen können, aber es wird nicht funktionieren .... weiß nicht warum :( –

+0

während Sie ein IMG-Tag erstellen dann auch seine ID mit ihm erstellen. Dann können Sie darauf zugreifen. –

+0

Bitte zeigen Sie mir Ihre Konsole Fehler und Ihre aktuelle auf JSfiddle Danke –

Verwandte Themen