请原谅我,但我仍然是jQuery的新手。 我有一个网站上有一些高尔夫球包。我想要做的是当你将鼠标悬停在包裹上时,价格会在包裹的图像下滑动,并且视图包装按钮会在图像顶部淡入
我写了一些代码,当页面上只有一个包时,它可以正常工作。但是当页面上有多个包时会出现问题。当您将鼠标悬停在其中任何一个包上时,所有包都会被触发
$(document).ready(function () {
$(".FPImage").hover(function () {
$(".FPPrice").stop(true, true).slideDown(400);
$(".FPFade").fadeIn('slow');
}, function () {
$(".FPPrice").stop(true, true).delay(10).slideUp(400);
$(".FPFade").fadeOut('slow');
});
});
HTML标记是
<div class="FPBox">
<div class="FPName">Package Name</div>
<div class="FPImage">
<img src="" alt="Package" border="0" />
<div class="FPFade" style="display:none">View Package</div>
</div>
<div class="FPPrice" style="display:none;">Price</div>
</div>
我将非常感谢任何帮助,我可以如何定位我所徘徊的div而不是所有触发的div
答案 0 :(得分:1)
问题是你正在触发所有课程。您只想触发.FPImage
div
尝试以下内容:
$(document).ready(function() {
$(".FPImage").hover(function() {
var $this = $(this);
$this.next(".FPPrice").stop(true, true).slideDown(400);
$this.find(".FPFade").fadeIn('slow');
}, function() {
var $this = $(this);
$this.next(".FPPrice").stop(true, true).delay(10).slideUp(400);
$this.find(".FPFade").fadeOut('slow');
});
});
答案 1 :(得分:1)
您需要找到相关元素
$(document).ready(function () {
$(".FPImage").hover(function () {
$(this).next(".FPPrice").stop(true, true).slideDown(400);
$(this).find(".FPFade").stop(true, true).fadeIn('slow');
}, function () {
$(this).next(".FPPrice").stop(true, true).delay(10).slideUp(400);
$(this).find(".FPFade").stop(true, true).fadeOut('slow');
});
});
FPPrice
元素是下一个兄弟,其中FPFade
是孩子
演示:Fiddle
答案 2 :(得分:0)
以下代码行中的$(".FPPrice")
:
$(".FPPrice").stop(true, true).slideDown(400);
将在页面上选择所有带有FPPrice
类的节点。
你可能想要:
// find the parent ".FPBox" starting from the current node :
var $box = $(this).closest(".FPBox");
// search only inside this box :
$box.find(".FPPrice").stop(true, true).slideDown(400);
$box.find(".FPFade").fadeIn('slow');