Пожалуйста, простите меня, но я все еще новичок в 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 .FPImage
Попробуйте что-нибудь вроде:
$(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');
});
});
вам нужно найти связанный элемент
$(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
является дочерним
Демо: скрипка
$(".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');