将div对齐到列表项旁边

use*_*896 25 html javascript css jquery

我正在尝试div动态创建元素和打印项目.我已经创建了一个演示来展示我到达的地方.

我的代码的问题是它不会出现在我想要的列表旁边.相反,它显示在底部.是否有可能在div我悬停的元素旁边显示新的权利?

$(".bubble").live({
    mouseenter : function() {
        $("#bubble").show();
        $("#bubble").html($(this).attr('id'));
    },
    mouseleave : function() {
        $("#bubble").empty();
    }
});
Run Code Online (Sandbox Code Playgroud)
#bubble{
    width:100px;
    height:20px;
    background-color:#666666;
    position:absolute;
    display:hidden;
}
Run Code Online (Sandbox Code Playgroud)
<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>
Run Code Online (Sandbox Code Playgroud)

Ror*_*san 23

您需要设置#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();
    }
});
Run Code Online (Sandbox Code Playgroud)

示例小提琴

请注意,我已删除了live()已弃用的用法on(),而是与委托一起使用.我也用过这个hover活动.


mke*_*key 11

纯CSS解决方案怎么样?

HTML:

<ul>
<li>
    <span class="bubble" id="test1">test1</span>
    <div>test1</div>
</li>
<li>
    <span class="bubble" id="test2">test2</span>
    <div>test2</div>
</li>
<li>
    <span class="bubble" id="test3">test3</span>
    <div>test3</div>
</li>
<li>
    <span class="bubble" id="test4">test4</span>
    <div>test4</div>
</li>
<li>
    <span class="bubble" id="test5">test5</span>
    <div>test5</div>
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

CSS:

ul li div {
    width: 100px;
    height: 10px;
    background-color: #666666;
    position: absolute;  
    display: none;
}

ul li:hover div {
    display: inline;   
}
Run Code Online (Sandbox Code Playgroud)

JSFiddle:http://jsfiddle.net/H2ZMc/


Akh*_*ran 7

希望这可以帮助:

JS-Fiddle演示

我将#bubble附加到li上

$(".bubble").live({
           mouseenter : function() {
               $("#bubble").html($(this).attr('id'));
               $(this).append($("#bubble").show());               
            },
            mouseleave : function() {
             $("#bubble").empty().hide();

            }
  });
Run Code Online (Sandbox Code Playgroud)