jQuery结果集保持填充
我有一个jQuery函数,它可以进行一个ajax调用,构建一个HTML字符串来填充jQuery结果集保持填充,jquery,ajax,Jquery,Ajax,我有一个jQuery函数,它可以进行一个ajax调用,构建一个HTML字符串来填充特性。问题是页面上有一个刷新页面的链接,问题是jqueryajax调用添加的HTML再次将HTML添加到页面中,这样结果就不会加倍。如果你再做一次,结果会被再次添加 所以我的问题是如何清除HTML,使结果重复多次?或者,解决这个问题的最佳方法是什么 //展开“复制到组”模式组 $(“.groupZones.expand”).live('click',function(){ $(this).this('.contra
特性。问题是页面上有一个刷新页面的链接,问题是jqueryajax调用添加的HTML再次将HTML添加到页面中,这样结果就不会加倍。如果你再做一次,结果会被再次添加
所以我的问题是如何清除HTML,使结果重复多次?或者,解决这个问题的最佳方法是什么
//展开“复制到组”模式组
$(“.groupZones.expand”).live('click',function(){
$(this).this('.contract').show();
$(this.css('display','none');
$(this).parent().parent()同级('.groupDetails').css('display','block');
$(this).parent().parent().sides('.groupDetails')。find('ul.device')。find('ul.list')。在('')之后;
var cwpUserId=$('#ctl00_cphBody_hfCwpId').val();
var groupId=$(this.parent().sides('.add').find('input').val();
sortOn=“位置”;
var mode=“dayparts”;
var groupUl=$(this.parent().parent().sides('.groupDetails').find('ul').find('ul li.head');
var groupDetails=$(this.parent().parent().siplines('.groupDetails');
//获取区域详细信息。。
//装载
$.ajax({
type: "POST",
url: "ajax/DaypartMessagingGroups.asmx/GetDetailsForCopyToGroup",
data: "{'groupId':" + groupId + ",'cwpUserId':" + cwpUserId + ",'pageNum':0,'pageSize':5, 'sortOn':'" + sortOn + "','sortDirection':'" + sortDirection + "','mode':'" + mode + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
//$(btn).parents("ul.list-group-zones").children("li:.head").after(msg.d);
$(groupUl).after(msg.d);
$('.location').find('.contract').hide();
var copyZonePerPage = 5;
//var copyZoneItemsCount = $(groupUl).siblings('#hfAllGroupZones').val();
var copyZoneItemsCount = $('#hfAllGroupZones').val();
var copyZonePages = Math.ceil(copyZoneItemsCount / copyZonePerPage);
var copyZoneHtml = '';
var copyZoneCurLink = 0;
var current_copyzone_pagination_set = 1;
var num_of_pagination_shown = 0;
alert('Line 2113 CBG');
if (copyZonePages > 20) {
//var pagesAdded = (parseInt(current_copyzone_pagination_set) - 1) * 10;
while (num_of_pagination_shown < 20) {
copyZoneHtml += '<a class="page_link_clicked" longdesc="' + copyZoneCurLink + '">' + (copyZoneCurLink + 1) + '</a>';
copyZoneCurLink++;
num_of_pagination_shown++;
}
copyZoneHtml += '<a class="page_link" id="btnNextZoneSet" longdesc="' + copyZoneCurLink + '">...</a>';
}
else {
while (copyZonePages > copyZoneCurLink) {
copyZoneHtml += '<a class="page_link_clicked" longdesc="' + copyZoneCurLink + '">' + (copyZoneCurLink + 1) + '</a>';
copyZoneCurLink++;
}
}
$(groupUl).parent().parent().find('ul li.footer').html(copyZoneHtml);
$('.page_link_clicked[longdesc=0]').addClass('current');
},
error: function(err) {
var err = eval("(" + err.responseText + ")");
if (ShowModalLogin(err.ExceptionType)) {
alert("An error occurred.");
}
}
});
});
$.ajax({
类型:“POST”,
url:“ajax/DaypartMessagingGroups.asmx/GetDetailsForCopyToGroup”,
数据:“{'groupId':“+groupId+”,'cwpUserId':“+cwpUserId+”,'pageNum':0,'pageSize':5,'sortOn':“+sortOn+”,'sortDirection':“+sortDirection+”,'mode':“+mode+“}”,
contentType:“应用程序/json;字符集=utf-8”,
数据类型:“json”,
成功:功能(msg){
//$(btn)。父母(“ul.列表组区域”)。子女(“li:.头”)。在(msg.d)之后;
$(groupUl).在(msg.d)之后;
$('.location').find('.contract').hide();
var copyZonePerPage=5;
//var copyZoneItemScont=$(groupUl).sides('#hfAllGroupZones').val();
var copyZoneItemScont=$('#hfAllGroupZones').val();
var copyZonePages=Math.ceil(CopyZoneItemScont/CopyZoneParage);
var copyZoneHtml='';
var copyzonecrlink=0;
var current_copyzone_pagination_set=1;
显示的分页的var num_=0;
警报(“第2113行CBG”);
如果(copyZonePages>20){
//var pagesAdded=(parseInt(当前拷贝区分页集)-1)*10;
而(显示的分页数小于20){
copyZoneHtml+=''+(CopyZoneUrLink+1)+'';
CopyZoneCrlink++;
显示的分页数++;
}
copyZoneHtml+='…';
}
否则{
同时(copyZonePages>CopyZoneUrLink){
copyZoneHtml+=''+(CopyZoneUrLink+1)+'';
CopyZoneCrlink++;
}
}
$(groupUl.parent().parent().find('ul li.footer').html(copyZoneHtml);
$('.page_link_clicked[longdesc=0]')。addClass('current');
},
错误:函数(err){
var err=eval(“+err.responseText+”);
if(showmodalloin(错误例外类型)){
警报(“发生错误”);
}
}
});
});
假设您添加的内容由容器包装(您的
),只需在添加新内容之前清除容器中的内容即可
您可以使用jQuery.remove()函数来完成此操作。在插入字符串中的内容之前,我会询问
是否为空
var $ul = $('#myUL');
if( $ul.is(':empty') )
$ul.append( content );
或更简短的版本:
$('#myUL:empty').append(content);
请注意,:empty
表示完全空,包括空格
编辑:
如果页面刷新是某些其他操作不必要的副作用,您可以在处理程序中防止这些
$('a.myLink')。单击(函数(e){
e、 preventDefault();//防止元素的默认行为。
//运行你的代码
});
OP提到刷新页面。你认为这意味着数据更新吗?@rchern-我也想到了。这个问题不清楚。如果是这样的话,我认为最好采用只检索新的、唯一的数据而不是整个数据集的策略,以减少带宽。或者至少跟踪已下载的项目,并仅附加收到的唯一项目,以减少DOM活动。不过,这一点很好o) 我将其解释为希望刷新ul中的实际数据。@rchern-您可能是对的。唯一让我不这么想的是OP指的是刷新整个页面,这看起来不像AJAX。我假设正在进行一些缓存,刷新来自不同的操作。不过,我很可能是错的。通过一些调试和警报消息,我看到jquery只运行了一次。web服务正在处理多次。为了更好地解释,页面显示了信息的元素,其中也包含sub元素。该页面看起来像一个带有子表单的表单。页面顶部有一个过滤器链接,允许我更改顶级数据。当我点击过滤页面的链接时,页面已经用该类型的数据过滤,sub会重复
$('a.myLink').click(function( e ) {
e.preventDefault(); // prevents the default behavior of the <a> element.
// run your code
});