【发布时间】:2013-07-01 05:35:17
【问题描述】:
我正在编写一个添加到现有站点的扩展程序,因此我无法直接修改 HTML。基本上,在单个 div 中包含一系列链接,仅由空格分隔。我正在尝试使用 jquery 在本系列的任意位置添加我自己的链接,并在链接旁边立即打开一个小菜单,例如右键单击上下文菜单。当链接/菜单悬停焦点消失时,它应该消失。
我可以处理 jquery 的实际行为,但我有点担心我应该在文档中的哪个位置放置此菜单的 html。它应该在身体的末端吗?就在链接之前/之后?然后,当我将鼠标悬停在链接上时,如何获得该元素的正确定位?我找到了示例,但它们都使用列表。我只需要一个链接悬停菜单,该菜单出现在链接旁边。
简而言之,我主要关心的是如何在链接旁边正确定位弹出 div。其次是当我尝试将鼠标悬停在菜单而不是链接上时如何保持菜单打开。
这是在我不确定该怎么做之前我能走多远:http://jsfiddle.net/jRpyp/
$(".menu a").filter(function(index) { return $(this).text() === "Link 3"; }).after(" | <a href=\"#\" id=\"popup-link\">My text</a> | ");
$("#popup").toggle();
$("#popup-link").hover(
function(e)
{
$("#popup").show();
},
function(e)
{
$("#popup").fadeOut("slow");
});
还有 HTML:
<div class="menu">
<a href="#">Link 1</a> | <a href="#">Link 2</a> | <a href="#">Link 3</a> | <a href="#">Link 4</a> <br />
<a href="#">More links</a> | <a href="#">More links</a> | <a href="#">More links</a> | <a href="#">More links</a>
</div>
<div id="popup">
<ul>
<li>Link 1</li>
<li>Link 2</li>
</ul>
</div>
【问题讨论】:
-
filter函数需要什么? -
根据文本选择链接。我知道我也可以使用 :eq() 或 :nth-child()。
-
所以你只想要那个链接?
-
仅在我添加的链接上。它是基于我的扩展的自定义功能,我不想在不同的页面上显示或强制其他地方进入 DOM。
标签: javascript jquery html css