像工具提示一样显示Div - Div需要在Click元素旁边定位

时间:2015-09-14 14:53:11

标签: javascript jquery html css

link这应该很简单,因为我已经95%完成并正常工作。我遇到的问题是弹出窗口会弹到您单击元素旁边的位置旁边。所以,如果我点击" L"在下面的示例中 - popover涵盖了" nk 1"。我希望它紧挨着1并且也尊重它的高度位置。单击元素的顶部,中间或底部也会改变定位。

这是一个小提琴,可以显示它的实际效果 - https://jsfiddle.net/pfcsc93t/2/

<div class="popover-link"><a link that toggles div display>Link 1</a></div>
<div class="popover-link"><a link that toggles div display>Link 2</a></div>
<div class="popover-link"><a link that toggles div display>Link 3</a></div>
etc...

具有基于点击链接的动态内容Feed的Popover - 一次只存在一个:

<div id="popover">popover content</div>

当前的jQuery:

$( ".popover-link").click( function(event) {
$("#popover").removeClass('hide').css( {position:"absolute", top:event.pageY, left: event.pageX});
});

1 个答案:

答案 0 :(得分:3)

您需要获取所点击元素的偏移量,而不是使用鼠标x和y位置:

$( ".popover-link a").click( function(event) {
    var pos = $(this).offset();
    $("#popover").removeClass('hide').offset({ top:pos.top, left:pos.left + $(this).width()});
});

请注意,点击附加到锚元素(选择器.popover-link a),否则this将指向div并使用其宽度而不是锚/文本宽度。

Fiddle