Или, чтобы упростить задачу, добавьте класс маркера, например, называемый 'fadingImage', к каждому из изображений, а затем используйте этот код ...
$('.fadingImage').hover(
function () {
$(this).fadeIn()
},
function(){
$(this).fadeOut()
}
);
Это работает, потому что всеизображения, независимо от их идентификатора, обрабатываются одинаково, и все, что вам действительно нужно сделать, это определить, к каким изображениям на вашей странице должны быть прикреплены обработчики наведения, и это делается с помощью класса маркера.Вы даже можете вообще отказаться от идентификаторов, если они не используются ни для чего другого.
Обновление: Нет, я не проснулся (Спасибо jAndy & Reigel!)Я исправлю свой пост, чтобы учесть тот факт, что элемент, на который наведен курсор, не является тем, который исчезает.
Без какой-либо выборочной разметки, я собираюсь сделать некоторые предположения, нооригинальный постер может захотеть предоставить реальную разметку, чтобы поместить вещи в контекст.
<div>
<span class="fadingTrigger">first text to hover over<span>
<img class="fadingImage" src="..." alt="first image to be faded"/>
<div>
<div>
<span class="fadingTrigger">second text to hover over<span>
<img class="fadingImage" src="..." alt="second image to be faded"/>
<div>
$('.fadingTrigger').hover(
function () {
$(this).parent().find(".fadingImage").fadeIn()
},
function(){
$(this).parent().find(".fadingImage").fadeOut()
}
);
В зависимости от структуры разметки, метод поиска fadingImage, который связан с fadingTrigger, может варьироваться, но имея некоторую четко определенную структуру, она должна быть надежной.
Причина, по которой я бы предпочел этот метод, а не использование массива идентификаторов для поиска элементов, заключается в том, что любые добавления в разметку потребуют изменений вJavaScript - это было бы особенно проблематично, если разметка генерируется динамически.Javascript может также генерироваться динамически, чтобы включать соответствующий массив значений, но это нарушит принцип DRY.