我正在使用以下脚本在我的动态页面上获取Gravatar,
<input type="text" id="email" value="{$clientemail}" style="display:none;"/>
$(document).ready(function(){
$('.p').append($.gravatar($('#email').val(), {
method: 'append',
size: '100',
image: '/images/1.png',
rating: 'r'
}));
});
<div class="p" style="width:100px;height:100px">
我必须使用其他页面中的以下代码加载{$clientemail}
的值。
$('#email').load('clientarea.php? #clientemail');
我的问题是 .load 需要几秒钟来加载&amp;所以 .append 正在发送空值,导致默认的Gravatar图片。
我如何克服这个问题?
感谢
答案 0 :(得分:3)
您需要将追加代码粘贴在load
回调中,如下所示:
$('#email').load('clientarea.php? #clientemail' function() {
$('.p').append($.gravatar($(this).val(), {
method: 'append',
size: '100',
image: '/images/1.png',
rating: 'r'
}));
});
虽然不推荐将.load()
放入这样的输入元素中,但最好使用$.get()
请求并抓取该值,如下所示:
$.get('clientarea.php?', function(data) {
var val = $('#clientemail', data).val();
//if needed: $('#email').val(val);
$('.p').append($.gravatar(val, {
method: 'append',
size: '100',
image: '/images/1.png',
rating: 'r'
}));
});