2013-06-30 155 views
0

我正在處理從服務器上的文件加載「應用程序」的應用程序。目前,我必須以特定的順序加載應用程序,否則他們將在陣列位置中出現錯誤的位置。如何使用Javascript設置動態加載元素的位置?

下面是幫助解釋我的意思的代碼。

function getFacebook() { 
    var appname = "facebooka1thd"; 
    $.get("apps/"+appname+"/"+appname+".html", function(data){ 
     $('.AppList').append(data); 
     $.cookie(appname, 1, { expires : 365 }); 
     checkpositions(); 
    }); 
}; 

function checkpositions() { 
    if ($.cookie('PosApps')){ 
     var Poscookie = $.cookie('PosApps'); 
     var Pos = JSON.parse(Poscookie); 

     $("#User").css({top:Pos[0].top, left:Pos[0].left}); 
     $("#facebooka1thd").css({top:Pos[1].top, left:Pos[1].left}); 
     $("#youtubea2thd").css({top:Pos[2].top, left:Pos[2].left}); 
    }; 
}; 

function getAppPositions() { 
    var apps = $(".App"), 
    positions = []; 

    $.each(apps, function (index, app) { 
     var positionInfo = $(app).position(); 

     positions.push(positionInfo); 
     console.log(positionInfo); 
    }); 
    var setPositions = JSON.stringify(positions); 

    $.cookie("PosApps", setPositions, { expires : 365 }); 
}; 

我想的代碼,以適應本數關的應用程序和它們被添加或刪除的順序。

基本上我沒有線索如何解決這個-_-我認爲,我的大部分代碼將在-爲了改變這是可能的,因爲在目前的位置被保存在順序應用程序被添加,但是當用戶移除其中一個應用程序並且相對於被添加的應用程序的順序而設置的位置時,這不會有幫助。

任何幫助,這將是偉大的!

回答

0

我設法解決它爲我自己...

function checkpositions() { 
    if ($.cookie('PosApps')){ 
     var Poscookie = $.cookie('PosApps'); 
     var Pos = JSON.parse(Poscookie); 

     for (var i = 0; i < Pos.length; i++) { 
      $("#"+Pos[i][0]).css({top:Pos[i][1].top, left:Pos[i][1].left}); 
     }; 
    }; 
}; 

function getAppPositions() { 
    var apps = $(".App"), 
    positions = []; 

    $.each(apps, function (index, app) { 
     var id = $(app).attr('id'); 
     var positionInfo = [id,$(app).position()]; 

     positions.push(positionInfo); 
     console.log(positionInfo); 
    }); 
    var setPositions = JSON.stringify(positions); 

    $.cookie("PosApps", setPositions, { expires : 365 }); 
}; 

所有我要做的就是讓一個二維數組,其位置之前的元素的ID和使用POS [我設置的CSS ] [0]爲id和Pos i .top /左邊的位置。希望這可以幫助任何遇到這種事情的人。另外如果你確實遇到了問題,我建議你去這個site。他們的教程非常好,幫助我解決了這個問題。

相關問題