javascript - CSS,Jquery - 绝对定位的 div 的宽度返回为 0

标签 javascript jquery css

我正在尝试运行一些有条件的 javascript 来定位一个 div,这样,如果单击照片右侧的标记,标记工具提示将位于标记的左侧,否则它将在标记的右侧。因此,如果标记在右侧,我指示工具提示位于标记的 position().left,减去工具提示的宽度。然而,工具提示宽度总是会改变,这取决于里面的文本,并且调用 jquery 的 width() 函数不会返回正确的宽度。有想法该怎么解决这个吗?这是示例:

http://bit.ly/IkbWl6

这是我的代码:

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/

相关文章:

javascript - 电话间隙 : uploading file to server using multipart/form-data

javascript - 访问 URL 执行 JavaScript

javascript - MouseEvent 在 Internet Explorer 中不工作

javascript - 在当前堆栈之外执行是什么意思

javascript - JQuery 无法在 "forwards"css 动画后对 div 进行动画处理

javascript - 将数组十六进制颜色转换为数组 RGB 颜色

jquery - 如何使用 $.ajax() GET 响应指定内容类型和内容处置

javascript - Jquery - 卸载前发布

css - mingle 论坛插件中不显示广告?

html - 如何使用 css 使用相对宽度在另一个 <div> 表中创建一个 <div> 表?