0

我注意到在几次尝试获取丢弃元素的计数时,它总是返回比找到的数量少一个,但是如果我通过 Chrome 控制台尝试相同的命令,我会得到正确的响应。

我假设这个脚本运行时 DOM 没有更新,所以我抛出了超时/重试机制,但仍然无济于事。我错过了什么?

预期结果大小 = 10

实际结果大小 = 9

代码

var asmCount = 0;

function storeValues(values, tryNumber){
    var size = values.length,
        tryNumber = (!isNaN(tryNumber)) ? tryNumber : 1
        ;

    console.log('full boat:' + size + ', try #'+ tryNumber + ' ' + typeof(tryNumber));
    if(tryNumber > 60){
        console.log('too many tries');
        return;
    }

    if(size < 10){
        console.log('missing entries');
        tryNumber = tryNumber + 1;
        setTimeout(storeValues($('.asm-ranking .receiver .asm-value'), tryNumber) , 500);
    } else if(size > 10){
        console.log('too many entries, something broke');
    } else {
        console.log('just right, lets do this shit.');
        //$.each(values, function(k,v){ console.log($(v).data('id'));});
    }   
}

$('.asm-ranking .receiver').droppable({
    drop: function(event,ui){
        var _self = this,
            receiverCount = $('.asm-ranking .receiver li').length
        ;
        //console.log('event',event);
        //console.log('ui', ui);
        asmCount++;
        console.log(asmCount + ' / ' +  receiverCount);
        if(receiverCount == asmCount){
            storeValues($('.asm-ranking .receiver .asm-value'), 1); // give DOM time to catch up, then store
        }
    }
});
4

1 回答 1

0

出于某种原因,当我将我的 jQuery 符号包装在文档准备好时

$(document).ready(function{ ... })

它按预期工作。

于 2013-10-01T21:30:01.420 回答