所以我正在从一本书中开展一个项目,其中TaffyDB用于创建一组人。该项目是一个简单的聊天室,其中用户列表生成为窗口中在线用户的html列表。目前我正在使用假数据进行测试,每个循环(在jquery中)都有一个正常工作,在屏幕上打印五个“化身”。但是,我的每个循环打印在线用户运行两次:为什么这样?这两个循环使用完全相同的设置,但第二个循环运行两次。
每个有效的方法:
people_db().each(function(person,idx){
var class_list;
if( person.get_is_anon() ){ return true; }
class_list = ['spa-avtr-box'];
if( person.id === chatee.id ){
class_list.push('spa-x-is-user');
}
$box = $('<div/>')
.addClass(class_list.join(' '))
.css( person.css_map )
.attr('data-id', String(person.id) )
.prop( 'title', spa.util_b.encodeHtml(person.name) )
.text( person.name )
.appendTo( $nav );
});
运行两次的循环:
people_db().each(function(person,idx){
var select_class = '';
console.log(person);
if( person.get_is_anon() || person.get_is_user() ) {
return true;
}
if( chatee && chatee.id === person.id ){
select_class = 'spa-x-select';
}
list_html
+= '<div class="spa-chat-list-name'
+ select_class + '" data-id="' + person.id + '">'
+ spa.util_b.encodeHtml(person.name) + '</div>';
});
if( !list_html ){
list_html = String()
+ '<div class="spa-chat-list-note">'
+ 'To chat alone is the fate of all great souls...<br><br>'
+ 'No one is online'
+ '</div>';
clearChat();
}
jqueryMap.$list_box.html(list_html);
}
任何想法我做错了什么?我已经广泛地浏览了我的其余代码而且我没有调用它两次,我几乎可以确定它必须是循环的东西。
答案 0 :(得分:0)
我首先要确保你没有两次打电话。 如果你看一下控制台,那么
console.log(person);
打印两次?
如果是这样解除调用的任何东西
people_db().each(function(person,idx){
绑定之前。