如何让 div 出现在鼠标悬停在其上的元素旁边? (jQuery)
我有一堆包含在链接中的图像,例如:
<a class="tipsFeatured" href="#" rel="products/p0.html"><img src="assets/img/products-shoppingview-and-registryview/horne/resized/pott-5pc-setting-pott.jpg" alt="Silver Cutlery" width="170" height="170" /></a>
<a class="tipsFeatured" href="#" rel="products/p1.html"><img src="assets/img/products-shoppingview-and-registryview/horne/resized/Design-House-Stockholm-Cobalt_Pitcher.jpg" alt="Design House Stockholm Cobalt Pitcher" width="170" height="170" /></a>
我有一个 id 为 #descText 的 div,我希望当鼠标悬停在每个链接上时,div 会出现在当前元素旁边,每个链接具有不同的文本时间。 “每次不同的文本”部分我知道该怎么做,但我无法使 div 出现在我刚刚拥有的当前悬停元素旁边:
$('.tipsFeatured').bind('mouseover',function(){
var $txt = $('#descText');
$(this).next().append($txt.css('display','block'));
});
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
您需要使用
.mouseenter()
和.mouseleave()
或.hover()
需要 2 个函数,否则任何内容都是以下代码将使
#descText
可见,并将其附加到中,以便它位于锚点内部,因此具有超链接。如果您不希望使用
超链接,请使用
.after()
而不是.append()
。HTML
CSS
JavaScript
演示
我假设您有多个图像描述 但在附加之前会以某种方式更改
#descText
内的文本,因为这只适用于一个唯一的#descText
元素。You need to use a combination of
.mouseenter()
and.mouseleave()
or.hover()
that takes 2 functions otherwise anything being.append()
ed orafter()
ed will be added on every mouse move over the anchor tag. I prefer the explicit mouseenter/leave but it's personal preference since the dual function hover is an alias for the mouseenter/leave.The following will make the
#descText
visible and append it to the<a>
, so that is inside the anchor and therefore is hyperlinked. If you do not want the<span id="descText"/>
hyperlinked use.after()
instead of.append()
.HTML
CSS
JavaScript
Demo
I assume that you have multiple image descriptions though, and are somehow changing the text inside the
#descText
before appending, as this only works with one unique#descText
element.这应该适合你:
演示: http://jsfiddle.net/hx8Tv/ 2/
将
替换为您的图像。
一点额外。
This should do it for you :
Demo : http://jsfiddle.net/hx8Tv/2/
Replace
<span>
with you images.A little extra.
解决此问题的一种方法是,您可以在您想要将描述悬停在每个元素旁边创建一个空的
并确保每个 id 都是唯一的。然后在 JavaScript 中,您可以输入类似
$('foo_'+id)
的内容,并通过 id 变量对其进行标识。One way to go about this is that you can make an empty
<div id="foo_1"></div>
next to each element that you'd like to have feature a description hoverover and make sure each id is unique. Then in the javascript, you can say something like$('foo_'+id)
and have it identified by the id variable.通过使用
.next()
,您可以选择 DOM 中的下一个a
元素并向其附加描述 div,而不是在当前之后插入描述 div一个
元素。试试这个:
它使用 jQuery 的
after()
函数。By using
.next()
, you are selecting the nexta
element in the DOM and appending the description div to it instead of inserting the description div after the currenta
element.Try this:
which uses jQuery's
after()
function.难道不应该是:
编辑:
更新了我的答案,这就是我回到页面要做的事情。一个很好的教训 - 最好先测试,然后发布,而不是发布并纠正。
Shouldn't that be:
EDIT:
Updated my answer, which is what I was coming back to the page to do anyway. A good lesson - better to test first, then post, than to post and correct.
试试这个
Try this