2015-02-07 70 views
0

因此,我正在從一本書中使用TaffyDB創建一個人的集合的項目。該項目是一個簡單的聊天室,用戶列表以窗口中的在線用戶的html列表的形式生成。目前我正在使用假數據進行測試,並且每個循環(在jquery中)都有一個正常工作的循環,向屏幕上打印五個「頭像」。然而,我的每個打印在線用戶的循環運行兩次:爲什麼是這樣?這兩個循環使用完全相同的設置,但第二個循環運行兩次。每個循環的TaffyDB 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

我會先確定你沒有調用過兩次。 如果你看看控制檯,

console.log(person); 

打印兩次? 如果是這樣拆散無論是調用

people_db().each(function(person,idx){ 

綁定之前。