jQuery嵌套$(this)在complete函数内失败



我有一个使用JSON的翻译函数

var json = $.getJSON("localization/translate.json", function (word) {
    $.each(word, function () {
        data = this;
        $(".translate").each(function (i, el) {
            var translation = $(el).attr("data-translate");
            if (translation === data.en) {
                $(el).fadeTo(500, 0, function () {
                    $(el).delay(600).html(data.en).fadeTo(500, 1);
                });
            }
        });
    });
});
fadTo(function(data))中的

data只显示json中的最后一个数据值,而不是每个json值的值。

如果我这样做

if(translation===data.en) {
    $(el).fadeTo(500, 0, function() {
            // move it to outside of this function.                             
    });
    $(el).html(data.en);
    $(el).fadeTo(500, 1);
}

比这是可以的,但它会触发HTML文本更改,在它完全褪色为透明之前。

var data = this;

使用局部变量,而不是全局变量,那么您可能会看到局部结果而不是全局结果;)

最新更新