Javascript TaffyDB jquery对于每个循环运行两次
因此,我正在一本书中的一个项目中工作,在这个项目中,TaffyDB被用来创建一个人物集合。该项目是一个简单的聊天室,用户列表在窗口中生成为在线用户的html列表。目前我正在使用虚假数据进行测试,我的每个循环(在jquery中)都有一个正常工作的循环,在屏幕上打印五个“化身”。然而,我的每个循环打印在线用户两次:为什么?这两个循环使用完全相同的设置,但第二个循环运行两次 适用于每种工作方式的:Javascript TaffyDB jquery对于每个循环运行两次,javascript,jquery,single-page-application,taffydb,Javascript,Jquery,Single Page Application,Taffydb,因此,我正在一本书中的一个项目中工作,在这个项目中,TaffyDB被用来创建一个人物集合。该项目是一个简单的聊天室,用户列表在窗口中生成为在线用户的html列表。目前我正在使用虚假数据进行测试,我的每个循环(在jquery中)都有一个正常工作的循环,在屏幕上打印五个“化身”。然而,我的每个循环打印在线用户两次:为什么?这两个循环使用完全相同的设置,但第二个循环运行两次 适用于每种工作方式的: people_db().each(function(person,idx){ var c
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\u db()。每个函数(person,idx){
风险等级清单;
如果(person.get_是_anon()){return true;}
类别列表=['spa-avtr-box'];
if(person.id==chatee.id){
类别列表推送(“spa-x-is-user”);
}
$box=$('')
.addClass(class_list.join(“”))
.css(person.css_映射)
.attr('data-id',字符串(person.id))
.prop('title',spa.util_b.encodeHtml(person.name))
.text(person.name)
.附页($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);
}
people\u db()。每个函数(person,idx){
变量选择_类=“”;
控制台日志(个人);
if(person.get_是_anon()| | person.get_是_user()){
返回true;
}
if(chatee&&chatee.id==person.id){
选择_类='spa-x-select';
}
列表(html)
+= ''
+spa.util_b.encodeHtml(person.name)+'';
});
如果(!list_html){
list_html=String()
+ ''
+“独自聊天是所有伟大灵魂的命运……”
+“没有人在线”
+ '';
clearChat();
}
jqueryMap.$list\u box.html(list\u html);
}
知道我做错了什么吗?我已经详细地研究了我的代码的其余部分,我不会调用它两次,我几乎可以肯定它必须与循环有关 我首先要确保你不会打两次电话。 如果你看一下控制台,会吗
console.log(person);
打印两次?
如果是这样的话,解除任何呼叫的绑定
people_db().each(function(person,idx){
在你绑它之前