我正在使用gravatar为每个在页面上发布故事的用户加载头像。我也使用jquery来绕过页面上某些span元素的角。不幸的是,看起来在应用jquery效果之前抓取gravatar中的化身(没有gravatar代码,元素立即被舍入),因此元素在网站上可见后立即改变。有什么方法可以解决这个问题吗? (我使用的是asp.net mvc)
答案 0 :(得分:1)
我想你是在使用网址加载gravatars,而不是ajax等。 document.ready()将在加载DOM时执行,不一定在加载所有(gravatar)图像时执行。您可以尝试在您的情况下使用window.onload事件。
答案 1 :(得分:0)
听起来好像你的gravatar加载脚本在修改外观的jQuery调用之前正在执行。有什么办法可以手动调用gravatar加载吗?如果是这样,您可以使用jQuery的document.ready首先调用您的装饰更改,然后调用gravatar加载。这样,在“更重要”的UI更改运行之前,您不会等待gravatars完成。
答案 2 :(得分:0)
以下是working JsFiddle demo如何使用JSONP调用API获取用户gravatar配置文件
$("form").on("submit", function(e) {
e.preventDefault();
$.ajax("http://en.gravatar.com/" + md5($("#email").val()) + ".json", { dataType: "jsonp" })
.done(function(result) {
for(var idx in result.entry)
{
var profile = result.entry[idx];
console.log(profile);
$("#displayName").text(profile.displayName);
$("#avatar").attr("src", profile.thumbnailUrl);
}
}).fail(function(result) { console.log("fail", arguments); });
});