javascript - 在列表项旁边对齐 div

标签 javascript jquery html css

我正在尝试创建 div 元素并在其上动态打印元素。我创建了 a demo显示我到达的位置。

我的代码的问题是它没有显示在我想要的列表旁边。相反,它显示在底部。是否可以在我悬停的元素旁边显示新的 div

$(".bubble").live({
    mouseenter : function() {
        $("#bubble").show();
        $("#bubble").html($(this).attr('id'));
    },
    mouseleave : function() {
        $("#bubble").empty();
    }
});
#bubble{
    width:100px;
    height:20px;
    background-color:#666666;
    position:absolute;
    display:hidden;
}
<ul>
    <li><span class="bubble" id="test1">test1</span></li>
    <li><span class="bubble" id="test2">test2</span></li>
    <li><span class="bubble" id="test3">test3</span></li>
    <li><span class="bubble" id="test4">test4</span></li>
    <li><span class="bubble" id="test5">test5</span></li>
</ul>
<div id="bubble"></div>

最佳答案

您需要设置 #bubble 相对于鼠标悬停在 li 上的位置。试试这个:

$("ul").on('hover', '.bubble', function(e) {
    if (e.type == 'mouseenter') {
        var $el = $(this);
        $("#bubble")
            .html($el.attr('id'))
            .css({
                top: $el.offset().top,
                left: $el.offset().left + $el.width()
            })
            .show();
    }
    else {
        $("#bubble").empty();
    }
});

Example fiddle

请注意,我已经删除了 live() 的使用,因为它已被弃用,而是将 on() 与委托(delegate)一起使用。我还使用了 hover 事件。

关于javascript - 在列表项旁边对齐 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13952270/

相关文章:

javascript - 使用 JavaScript 访问 DLL

javascript - 类型错误 : Value can't be converted to a dictionary

jquery - Google Analytics-事件跟踪-防止多个按钮单击

javascript - 每 250 像素间隔的媒体查询

html - 在 css 中设置 <hr> 标签的样式

javascript - 如果输入为空,如何禁用html按钮?

javascript - jQuery 中的变量

javascript - 如何循环访问对象内的数组

jquery - 用 css 或 jquery 打开和关闭框(div)

javascript - 围绕 div 框轻微 float 移动