只将鼠标悬停在具有相同类 jquery 的 1 个元素上

Posted

技术标签:

【中文标题】只将鼠标悬停在具有相同类 jquery 的 1 个元素上【英文标题】:hover over only 1 element with same class jquery 【发布时间】:2012-01-30 01:07:41 【问题描述】:

我在 jquery 中有这段代码:

$(".pun").hover(function() 
 $(".guns").show(0);        
);

我的html

<div class="pun">
<div class="guns">gun 1</div>
</div>
<div class="pun">
<div class="guns">gun 2</div>
</div>
<div class="pun">
<div class="guns">gun 3</div>
</div>

我的 CSS

.pun 
display:visible


.guns 
display:none

我想做悬停动作,只显示悬停的项目。现在,如果您悬停显示每个 div 枪。

【问题讨论】:

【参考方案1】:

要仅显示您悬停的pun div 内的guns div,请使用find 函数

$(".pun").hover(function() 
   $(this).find(".guns").show(0);        
);

或者为您的选择器提供上下文

$(".pun").hover(function() 
   $(".guns", this).show(0);        
);

另外,show 的默认设置不执行动画,因此您可以将 .show(0); 替换为 show();

【讨论】:

【参考方案2】:

仅使用 CSS 更容易实现:

div.pun div.guns 
    display: none;


div.pun:hover div.guns 
    display: block;

顺便说一句,visible 不是 display 属性的有效值。而且,您缺少hover() 的第二个参数(如果您坚持使用 jQuery)。您可能应该在第二个函数中使用hide() .guns,或者如果您只想显示它们(并且从不隐藏它们),您可以使用mouseover() 而不是hover()

【讨论】:

虽然我同意这是完成同样事情的更好方法;这不是问的问题。问题是关于用 jquery 做的。 如果你指的是 IE6 及以下版本。 @Chad - 是的。但如果有人问如何使用表格创建两列布局,我不会告诉那个人如何 - 我会描述如何正确地做到这一点。 然而,如果不是故意隐藏枪 onmouseout()(或 hover() 中的第二个函数),CSS 解决方案将无法工作。如果是这种情况,您的答案显然更好。我会给它+1。 看起来连 IE7 都不喜欢 :hover bernzilla.com/item.php?id=762 但你的回答是呼吸新鲜空气,所以 +1 --- 显示可见的以了解 .pun 的状态。我的 css 中没有显示可见 :D.. 谢谢【参考方案3】:

改变

$(".guns").show(0);

$(".guns", this).show(0);

这将只选择悬停元素上下文中的'.guns'。 (jsFiddle)

【讨论】:

【参考方案4】:

悬停时有两个events 有界,mouseovermouseout。你可能想把它隐藏在mouseout

$(".pun").hover(function() 
   $(this).children(".guns").show(100);        
,function()
   $(this).children(".guns").hide(100);
);

【讨论】:

【参考方案5】:

您可以通过 id 来识别它们,或者类似的东西应该可以工作(未经测试):

$(".pun").hover(function() 
    $(this).children(".guns:first").show(0);        
);

【讨论】:

【参考方案6】:

做一个子选择

$(".pun").hover(function() 
    $(this).children(".guns").show(0);        
);

【讨论】:

以上是关于只将鼠标悬停在具有相同类 jquery 的 1 个元素上的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 JQuery 选择鼠标悬停的对象?

在jQuery中,在鼠标悬停时添加类并在鼠标悬停时将其删除的最佳方法是啥?

Jquery:当悬停在菜单项上时,显示文本

javascript 使用jQuery或javascript在鼠标悬停(鼠标悬停/鼠标移出)中添加或删除类

jQuery 需要帮助在具有特定类的 div 元素中选择 tr 元素

悬停时,jQuery将元素从一个类淡化到另一个类