如何解决jQuery刷新正在创建不必要的无限循环
| 我有一个要刷新的好友列表。每次刷新后,便开始将相同的名称添加到列表中,而不仅仅是刷新函数。任何想法都很棒,或者我只是想念完整的东西?$(function() {
$(\'<div />\').html(\'<div id=\"buddies\" class=\"buddies\" style=\"vertical-align:bottom\"><div class=\"imheader\"> Online Favorites<span class=\"fr\"><a href=\"#\" id=\"exitlist\">X</a></span></div><div class=\"imheader2\"><div class=\"imheaderspan\"><a href=\"#\">Options</a></div></div><ul class=\"imwindow\"><div id=\"myonlinefavs\"></div></ul></div><div id=\"chatbar\" class=\"chatbar\"><div id=\"ims\"></div><div class=\"buddylist\" id=\"buddylist\"><center><a href=\"#\" id=\"im-menu\" class=\"im-menu\">Favorites (<strong id=\"friendsonline\">0</strong>)</a></center></div></div>\').appendTo(\'body\');
var imRoot = $(\"#im-menu\");
var buddies = $(\"#buddies\");
imRoot.click(function(){
buddies.toggle();
imRoot.blur();
return( false );
});
$(\"#exitlist\").click(function(){
buddies.toggle();
imRoot.blur();
return( false );
});
$(document).click(function( event ){
if (buddies.is( \":visible\" ) && !$( event.target ).closest( \"#buddies\" ).size()){
buddies.hide();
}
});
$(function FL(){
$.ajax({
type: \'POST\',url: \'config/receive_buddylist.PHP\',cache: \'false\',dataType: \'json\',success: function(data){
onlineNumber = buddylistreceived = 0;
data && $.each(data,function(i,e){
if (i == \"buddylist\") {
buddylistreceived = 1;
totalFriendsNumber = onlineNumber = 0;
$.each(e,function (l,f) {
if(f.id != null){
longname = f.n.length > 16 ? f.n.substr(0,16) + \"...\" : f.n;
$(\'#myonlinefavs\').append(\'<li>\' + longname + \'</li>\');
}
if(f.s == \'0\') onlineNumber++;
totalFriendsNumber++;
});
}
});
R = onlineNumber;
if (R > 0){
$(\'#friendsonline\').html(onlineNumber);
} else {
$(\'#myonlinefavs\').html(\'No favorites online.\');
$(\'#friendsonline\').html(\'0\');
}
}
});
Z = setTimeout(function () {
FL()
},1000)
});
});
解决方法
在将列表项追加到
myonlinefavs
元素的$.each
函数之前,应清除列表,如下所示:$(\'#myonlinefavs\').html(\"\")
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。