Проблема № 1: у вас установлен одинаковый идентификатор для нескольких элементов.Идентификаторы должны быть уникальными для элемента, для которого вы его устанавливаете.Для этого вы должны использовать классы.
Проблема №2: var videospan = $('.video').find('#video_span');
говорит ему найти элемент с идентификатором video_span
для всех элементов с классом video
.
правильный способ использования вашего кода:
<div class="video video_main">
<div class="video_image_bg video_logo_off video_bg">
<span class="video_span"></span>
</div>
<div>
<div class="video video_main">
<div class="video_image_bg video_logo_off video_bg">
<span class="video_span"></span>
</div>
<div>
.
$('.video').mouseenter(function() {
var videospan = $(this).find('.video_span');
videospan.fadeTo("slow", 1);
});
$('.video').mouseleave(function() {
var videospan = $(this).find('.video_span');
videospan.fadeTo("slow", 0);
});
Когда событие вызывается в jQuery, контекст this
становится HTMLDOMElemnent
элемента ссобытие срабатывает.Так что внутри события будут работать такие вещи, как this.style.display
, this.appendChild()
и т. Д.Однако this
не является объектом jQuery, поэтому мы включаем jQuery-цепочку и функции, используя $(this)
, поскольку jQuery может принять HTMLDOMElement
.
.