2016-07-29 7 views
0

imgのエラーを関数にバインドしようとしています。画像タグは、この機能jqueryで動的に作成されたイメージタグでonerrorをバインドする

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

は今、私はONERRORでこの機能をバインドしたいです

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

jqueryの中で次のように作成された... 私は次のことを試してみた、彼らはのために仕事を文句を言いません私

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

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

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

誰がどのように私はそれを達成することができ、私を提案することができますか?

+1

「this._img1」とは何ですか?私はそれがDOMノード要素であり、jqオブジェクトではないと思います。そこで、jqメソッドを使用するためには、jqオブジェクトにラップする必要があります: '$(this._img1).on( 'error'、function(){_ img1.src = '/Content/img/placeholder-profile.jpg' ;}); '。または、ネイティブjsメソッドを使用して、イベント –

+0

@Aをバインドします。 Wolff 'this'は他のすべての要素がラップされ、結果を表示しているメインのdiv要素です。実際にはjqueryウィジェットの呼び出しです。 –

答えて

0

この機能を実現するには、単にjereryの.error()を使用します。イベントハンドラを「エラー」JavaScriptイベントにバインドします。

Type: Function(Event eventObject) 

イベントがトリガーされたときに実行される機能。

エラーイベントは、イメージなど、ドキュメントによって参照され、ブラウザによってロードされる要素に送信されます。要素が正しく読み込まれなかった場合に呼び出されます。

は例えば、簡単な画像要素でページを考えてみます。

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

イベントハンドラがイメージにバインドすることができます。

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

画像は、例えば(ロードできない場合は、提供されたURLに存在しないため)、警告が表示されます。

ハンドラfor .error()が呼び出されます。

+0

iveも私の質問でそれを見ることができますが、それは働いていない....知っていない理由:( –

+0

あなたはまた、そのIDを作成するimgタグを作成している間、それをアクセスすることができます。 –

+0

あなたのコンソールエラーとあなたの現在のJSfiddleに感謝してください –

関連する問題