有一个简单的代码:
var wrap = $('<div style="width: 100px; height: 100px;" class="file-upload-wrapper"></div>').appendTo('.left-menu');
然后我尝试获取元素的位置,返回错误的结果
console.log(wrap.offset());
Object {top: 0, left: 0}
实验上,我发现当我放任何延迟时,会返回正确的结果
setTimeout(function() {
console.log(wrap.offset());
}, 1);
Object {top: 92, left: 465}
为什么会发生这种情况以及如何及时解决?