(1)、使用“clone()”方法进行动态加载
<body>
<div class="top">
<a href="javascript:history.go(-1);"><img src="img/ic-return-big.png" class="fh_t"></a>
<p class="zbt">我的粉丝</p>
</div>
<div id='all_div' class="all_main">
<div class="main_top">
<input id="name" type="text" class="main_input"
placeholder="请输入会员名称搜索" /> <a href="javascript:searchByNickname();"><img
src="img/btn-search.png"></a>
</div>
<div id="all_div_content" style="position: absolute;width: 100%;bottom: 0px;top:75px;overflow: scroll;">
<div id="emptyList" onclick="displayPeasonDetail(this);"class="main_content" style="display: none;">
<img id="img" class="main_content_1 bor_tx1" onerror="onHeadError(this);">
<div class="main_content_2">
<p id='nickName' class="main_content_p1"></p>
<p id='sys' class="main_content_p2"></p>
</div>
<img onclick="displayPeasonDetail();" class="main_content_3" src="img/celebrities-btn-detail.png">
</div>
</div>
</div>
</body>
使用“clone()”方法进行动态加载
<script type="text/javascript">
var start = 0;
var end = 11;
var canLoad = true;
var nickName;
$(function() {
//滚动条的事件
$('#all_div_content').scroll(function() {
var a = $(this)[0].scrollHeight;
var b = $(this)[0].scrollTop;
var c = $("#all_div_content").height();
//当到达底部或者距离为60px时自动从后台加载数据
if ((b + c + 60 == a || b + c == a) && canLoad) {
getAllFans();
}
});
getAllFans();
});
function getAllFans() {
//ajax进行post请求
$.ajax({
type : 'post',
url : getUrl() + 'getAllFansList.do',
dataType : 'json',
data : {
'start' : start++,
'end' : end
},
xhrFields : {
withCredentials : true
},
success : loadMyFans
});
}
function loadMyFans(data) {
if (data.msg.state > 0) {
for (var i = 0; i < (end - 1) && i < data.fans.length; i++) {
var fan = data.fans[i];
var s = $('#emptyList').clone();
s.attr('id', fan.id);
s.attr('state',fan.state);
s.find('#img').attr('src', fan.img+'');
s.find('#nickName').html(fan.nickname);
s.find('#sys').html(fan.synopsis!=undefined?fan.synopsis:" ");
s.css('display', 'inline-block');
$('#all_div_content').append(s);
}
if (data.fans.length < end) {
canLoad = false;
}
} else {
alert("登陆超时,请重新登录");
goToLogin(true);
}
}
</script>
(2)、使用“字符串拼接---(利用元素的父子关系进行加载)”方式进行动态加载:
<body >
<div class="top">
<div class="bt_cd">
<div id="personId" class="bt_cd_a">人物</div>
<div id="questionId">问题</div>
</div>
<img src="img/btn-search.png" class="sch_t" onclick="seach()">
</div>
<div id="scoll" class="scoll">
<div class="bt_2">
<div id="recommends" >推荐</div>
<div id="recentLists">新晋榜</div>
<div id="talents" class="bt_2_a">才华榜</div>
</div>
<div class="biaoti" >
<p class="zitistyle fl">
<img src="img/talent-list.png" class="imgstyle2 fl"/>
<strong>才华榜单</strong>
</p>
</div>
<div id="InfoDiv" class="liebiao">
</div>
</div>
</body >
<script type="text/javascript">
var start =0;// 分页标示
var end = 11;//每次默认读取11条记录
var canLoad = true;//标示信息是否完全读取
function getUerInformation(){
$.ajax({
type:"POST",
url:getUrl()+"talentpersonlist.do",
data:{"start":start,"end":end},
dataType:"JSON",
xhrFields: {
withCredentials: true
},
success:talentList
});
start++;
}
function talentList(data){
for(var i = 0;i < Math.min(data.talentPersons.length,end-1);i++) {
var item = data.talentPersons[i];
$('#InfoDiv:last-child').append(' <div class="liebiao" onClick="getDetail('+item.id+')"></div>');
$('.liebiao:last').prepend('<div style="float:left;width:70%;"><p class="name"><strong>'+item.nickname+'</strong></p><p class="label" style="width:auto;">'+item.synopsis+'</p></div>');
$('.liebiao:last').prepend('<div style="float:left"><p><img class="touxiang" src="'+item.img+'" onerror="onHeadError(this)"></p></div>');
$('.liebiao:last').prepend('<div style="float:right;"><p ><img class="xiangxi" src="img/ic-arrows.png"></p></div>');
}
if(data.talentPersons.length<end){
canLoad=false;
}
}
function getDetail(id){
window.location.href="question-person-detail.html?uid="+id;
}
$(document).ready(function(){
getUerInformation();
$("#scoll").scroll(function(){
var a = $(this)[0].scrollHeight;
var b = $(this)[0].scrollTop;
var c = $("#scoll").height();
//当到达底部或者距离为60px时自动从后台加载数据
if((b + c+ 60 == a||b + c == a)&&canLoad){
getUerInformation();
}
});
function seach(){
window.location.href="question-person-search.html";
}
</script>
(3)、使用“字符串拼接---(利用replace()方法进行替换)”方式进行动态加载:<body >
<div class="top">
<div class="bt_cd">
<div id="personId" class="bt_cd_a">人物</div>
<div id="questionId">问题</div>
</div>
<img src="img/btn-search.png" class="sch_t" onclick="seach()">
</div>
<div id="scoll" class="scoll">
<div class="bt_2">
<div id="recommends" >推荐</div>
<div id="recentLists" class="bt_2_a">新晋榜</div>
<div id="talents">才华榜</div>
</div>
<div class="biaoti" >
<p class="zitistyle fl"><img src="img/ic-recent-list.png" class="imgstyle fl"/><strong>新晋榜单</strong></p>
</div>
</div>
</body>
javascript代码如下:
<script type="text/javascript">
var start =0;// 分页标示
var end = 11;//每次默认读取11条记录
var canLoad = true;//标示信息是否完全读取
function getUerInformation(){
$.ajax({
type:"POST",
url:getUrl()+"recenttimepersonlist.do",
data:{"start":start,"end":end},
dataType:"JSON",
xhrFields: {
withCredentials: true
},
success:RecentList,
error:function(){
alert("加载失败!");
}
});
start++;
}
function RecentList(data){
//当的数据小于默认值时表示加载完成
if(data.persons.length<end){
canLoad=false;
}
//format变量中的内容为:所动态加载的内容------“所需替换的量均已@xxx的形式出现”
var format = '<div id="liebiaoDiv" class="liebiao" onClick="getDetail(@id)"><div style="float:right;"><p ><img class="xiangxi" src="img/ic-arrows.png"></p></div><div style="float:left"><p><img class="touxiang" src="@img" onerror="onHeadError(this)"></p></div><div style="float:left;width:70%;"><p class="name"><strong>@nickname</strong></p><p class="label" style="width:auto;">@synopsis</p></div></div>';
for(var i = 0;i<Math.min(data.persons.length,10);i++)
{
var item = data.persons[i];
var line = format.replace(/@id/g,item.id).replace(/@nickname/g,item.nickname).replace(/@synopsis/g,item.synopsis).replace(/@img/g,item.img);
$('#scoll').append(line);
}
}
function getDetail(id){
window.location.href="question-person-detail.html?uid="+id;
}
$(document).ready(function(){
getUerInformation();
$("#scoll").scroll(function(){
var a = $(this)[0].scrollHeight;
var b = $(this)[0].scrollTop;
var c = $("#scoll").height();
//当到达底部或者距离为60px时自动从后台加载数据
if((b + c+ 60 == a||b + c == a)&&canLoad){
getUerInformation();
}
});
</script>
(4)、最简洁的一种方法:使用模板进行相应的加载:
<body>
<div class="top">
<div class="bt_cd">
<div id="question-person" class="bt_cd_a" >人物</div>
<div id="question-question" >问题</div>
</div>
<img id="searchImg" src="img/sch@1x.png" class="sch_t">
</div>
<div id="talentScollDiv" class="scoll">
<!-- 广告 -->
<div class="banner" id="bannerAnimation">
</div>
<script type="text/javascript">
$("#bannerAnimation").load("animationAdv.html",function(){
//传入参数进去
});
</script>
<div class="tab ft15">
<div id="recommendsDiv" >
<p ><img src="img/ic-recommends2.png" align="absbottom" ><span >推荐</span></p>
</div>
<div id="recentsDiv" >
<p><img src="img/ic-recents.png" align="absbottom" ><span >新晋榜</span></p>
</div>
<div id="talentsDiv" >
<p><img src="img/ic-talents-light.png" align="absbottom" ><span class="dq">才华榜</span></p>
</div>
</div>
<!-- 所需动态加载的一段HTML重复代码 -->
<!-- <div class="list_m" style="margin-top: 0;">
<div class="list_li">
<div class="list_t"> <img src="img/C25F6E09-765C-41E0-A9E5-BB59B558726F@2x.png" /></div>
<div class="list_r"><p class="ft20" style="margin-top: 2.5rem;">Debra Richardson</p><p class="ft18">职业经理人</p></div>
</div>
</div> -->
<!-------------- 读取列表模板 ----------------------->
<script id="talentstpl" type="text/html">
<div class="list_m" style="margin-top: 0;" onclick="goPersondetail({{id}})">
<div class="list_li">
<div class="list_t">
<img src="{{img}}" onerror="onHeadError(this)" />
</div>
<div class="list_r">
<p class="ft20" style="margin-top: 2.5rem;">{{nickname}}</p>
<p class="ft18">{{title}}</p>
</div>
</div>
</div>
</script>
</div>
<div class="foot" id="universalBottom">
</div>
<script type="text/javascript">
$("#universalBottom").load("universal-bottom.html",function(){
intiBottomTag("question");
});
</script>
</body>
所替换的JavaScript代码如下:
<script type="text/javascript">
//变量的定义
var start=0;
var end=11;
var canLoad=true;
//页面加载事件
$(function(){
getTalentLists();
//滚动条事件
$("#talentScollDiv").scroll(function(){
var a = $(this)[0].scrollHeight;
var b = $(this)[0].scrollTop;
var c = $("#talentScollDiv").height();
//当到达底部或者距离为60px时自动从后台加载数据
if((b + c+ 60 == a||b + c == a)&&canLoad){
getTalentLists();
}
});
});
function getTalentLists(){
$.ajax({
type:"POST",
url:getUrl()+"talentpersonlist.do",
data:{"start":start,"end":end},
dataType:"JSON",
xhrFields: {
withCredentials: true
},
success:analyseTalentLists
});
start++;
}
function analyseTalentLists(data){
<!-- 关键代码 -->
for(var i=0;i<(end-1) && i < data.talentPersons.length;i++){
var talentPerson=data.talentPersons[i];
var t=template("talentstpl",talentPerson);
$("#talentScollDiv").append($(t));
}
//当的数据小于默认值时表示加载完成
if(data.persons.length<end){
canLoad=false;
}
}
function goPersondetail(id){
window.location.href="question-person-detail.html?uid="+id;
}
</script>