Popover出现在错误的地方

时间:2013-07-02 10:48:38

标签: javascript jquery popover

JS小提琴:http://jsfiddle.net/Xw9QK/1/

我正在制作一个popover,并让它工作,但是当我开始通过ajax加载内容并添加一个微调器首先出现它现在出现在错误的地方。

我认为这个问题与微调器出现一个小弹出窗口的事实有关,当内容加载时,它使用相同的div来添加ajax内容,然后在移动它之前调整框的大小。

现在有时它会起作用,在我的网站上它似乎不能第一次工作,但当关闭并再次打开它时它会快速回到正确的位置!

有谁能看到这里出了什么问题?

我正在使用此功能重置位置:

function reset_popover_position(user_id) {
    var position = $('#link_' + user_id).position();
    console.log(position);
    var top_position = (position.top - $('.new_tooltip').outerHeight()) - 10;
    console.log(top_position);
    var left_position = (position.left - ($('.new_tooltip').outerWidth() / 2) + ($('#link_' + user_id).outerWidth() / 2));
    console.log(left_position);

    $('.new_tooltip').css({
        top: top_position + "px",
        left: left_position + "px"
    });

    return true;
}

1 个答案:

答案 0 :(得分:4)

setTimeout解决了这个问题。的 Fiddle

这是我在处理动态内容高度时所使用的技巧。宽度。

我认为setTimeout的{​​{1}}为浏览器提供了足够的时间来呈现html&因此,当1触发实际代码时,计算尺寸,一切都会给出正确的结果。

我在setTimeout内添加了setTimeout

toggle_popover