как запустить функцию jquery только для одного элемента, используя имя класса. есть больше элементов, использующих тот же класс

0

У меня есть следующий код на моей странице галереи, чтобы показать галереи, которые у меня есть.

<div id="gallery">
    <?php
    if (!empty($gallery)) {
        foreach ($gallery as $row) {
            ?>
            <div class="album_holders">
                <div class="image_holder">
                    <img src="images/gallery/<?php echo $row['img_name']; ?>" width="150" height="75"/>
                </div>
                <div class="title_holder">
                    <?php echo $row['title']; ?>
                </div>
            </div>
        </div>
        <?php
    }
}
?>
</div>

поэтому мне нужно добавить мышь к анимации всем владельцам альбомов. когда мышь придет над альбомом, мне нужно показать название альбома под ним, используя функцию jquery.

это мой код jquery

$(".image_holder").on("mouseover", function ()
{
   $(".title_holder").animate({
       "opacity": 1
   },1500,$easing2); 
});

но проблема в том, что когда я перемещаю мышь над одним альбомом, каждый альбом показывает его имя. как это остановить. Я ищу в сети и обнаружил, что должен использовать функцию.on. либо я все еще использую его, показывая его имя.

Теги:

2 ответа

2
Лучший ответ

Вы можете получить относительные .album_holders используя this, а затем найти в нем .title_holder.

$(".image_holder").on("mouseover", function ()
{
   $(this).closest('.album_holders').find('.title_holder').animate({
       "opacity": 1
   },1500,$easing2); 
});
  • 0
    оба ответа работают на мою проблему. Я выбрал первый ответ, потому что он первый. но я не знаю, как лучше. так что, если вы можете сказать мне, это будет хорошо для моих знаний. благодарю вас
  • 1
    Трудно сказать, что лучше, они работают по-другому. Это зависит от родителя, а затем находит заголовок под этим. Другой использует .next() который зависит от порядка. Вы можете утверждать, что это может пережить больше изменений HTML, например, изменения шаблона, прежде чем JavaScript нуждается в переработке.
Показать ещё 1 комментарий
1

вы можете сделать это

$(".image_holder").on("mouseover", function ()
{
   $(this).next(".title_holder").animate({
       "opacity": 1
   },1500,$easing2); 
});
  • 0
    оба ответа работают на мою проблему. Я выбрал первый ответ, потому что он первый. но я не знаю, как лучше. так что, если вы можете сказать мне, это будет хорошо для моих знаний. благодарю вас
  • 2
    этот просто выбирает найденный следующий элемент ... но первый подходит, потому что он выполняет поиск по родительскому элементу. пойти с этим, потому что вы можете (один день) изменить заказы.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню