如何使用JQuery缓存加载的html

时间:2013-11-18 19:16:54

标签: javascript jquery html

我有一个Javascript函数从服务器加载一些html:

function addPerson(){
    var p = $('<div>').load('data/person.php',function(){
        //set click and key actions

        $('#element').append($(this));
    });

    return p;
}

我希望有另一个函数在添加它们之后将一些数据加载到元素中,以便用户回来时:

function loadPerson(){
    var ep = addPerson();
    ep.find('#txtName').val('My Name');
    //and so on
}

但loadPerson从不填写任何信息。我在fireant中调试并意识到ep的值总是一个空div,这让我意识到在异步查询完成之前元素正在被缓存。关于如何返回元素完全加载的任何想法?

P.S。我需要这两个功能!

编辑:

我也没有运气试过这个:

function addPerson(){
    var p;
    $('<div>').load('data/person.php',function(){
        //set click and key actions

        $('#element').append($(this));
        p = $(this);
    });

    return p;
}

1 个答案:

答案 0 :(得分:0)

以下是我在项目中使用的模式,

<强> Code:

(function($) {
   var foo = {
       init: function() {
           this.someObject = null;
           this.cache();
           return this; // to allow chaining
       },
       cache: function() {
          this.someObject = $(".someClass");
       }
   };

   window.load = foo.init();
})(jQuery);