私はうまく機能するコードを持っていますが、その一部の背後にあるアイデアを得ることができないので、助けていただければ幸いです。
次の関数では、bind(this)
関数はコードの最後で何をしますか? SO と JQuery の両方のドキュメントをたくさん検索しましたが、そのような使用法は見つかりませんでした。bind()
関数をイベントにフックしようとするすべての使用法ですが、ここでは関数の後に bind が呼び出され、JQuery オブジェクト (この場合は img タグ) が渡されます。前もって感謝します。
function refreshCaptcha() {
var currCaptcha = $('#captcha-div img');
currCaptcha.animate({
opacity: 0.3
}, 300);
$.getJSON("/captcha.json", function (data) {
var src = $("#captcha-template").html();
var template = Handlebars.compile(src);
var newSrc = template(data);
var srcDom = $(newSrc);
srcDom.eq(0).css('opacity', 0).load(function() {
currCaptcha.animate({
opacity: 0
}, 250, function() {
$("#captcha-div").html(srcDom);
$(this).animate({
opacity: 1
}, 250);
}.bind(this));
});
});
}