我正在尝试运行一些有条件的 javascript 来定位一个 div,这样,如果单击照片右侧的标记,标记工具提示将位于标记的左侧,否则它将在标记的右侧。因此,如果标记在右侧,我指示工具提示位于标记的 position().left,减去工具提示的宽度。然而,工具提示宽度总是会改变,这取决于里面的文本,并且调用 jquery 的 width() 函数不会返回正确的宽度。有想法该怎么解决这个吗?这是示例:
这是我的代码:
var tagPos = $photo_tag.position();
if (isNarrow == true){
var photoWidth = $('#photo_box').width();
if (tagPos.left > photoWidth/2){
var brandWidth = $('.brand_name').width(); //MH - NOT WORKING
$brand_name_container.css({'left' : tagPos.left-brandWidth, 'top' : tagPos.top+brandAdjTop});
} else {
$brand_name_container.css({'left' : tagPos.left+brandAdjLeft, 'top' : tagPos.top+brandAdjTop});
}
}
最佳答案
以防万一,但在您请求它的宽度时,您的工具提示是否可见? 工具提示必须可见才能由渲染引擎渲染,否则它不会有任何大小。
例如你可以做类似的事情
$('#mytooltip').show(0);
width = $('#mytooltip').width();
$('#mytooltip').hide(0);
这足以让渲染发生,但它没有时间真正显示给用户。
关于javascript - CSS,Jquery - 绝对定位的 div 的宽度返回为 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10317572/