需要有关此脚本的帮助

时间:2010-07-31 11:07:59

标签: jquery

我正在使用以下脚本在我的动态页面上获取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图片。

我如何克服这个问题?

感谢

1 个答案:

答案 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'
        }));
});