每个循环的TaffyDB jquery运行两次

时间:2015-02-07 23:39:41

标签: javascript jquery single-page-application taffydb

所以我正在从一本书中开展一个项目,其中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);
}

任何想法我做错了什么?我已经广泛地浏览了我的其余代码而且我没有调用它两次,我几乎可以确定它必须是循环的东西。

1 个答案:

答案 0 :(得分:0)

我首先要确保你没有两次打电话。 如果你看一下控制台,那么

console.log(person);
打印两次? 如果是这样解除调用的任何东西

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

绑定之前。