Вот мой проблемный ребенок:
jQuery(document).ready(function() {
var a = jQuery('img[title*="after"]');
a.parents('dl.gallery-item').addClass('after');
a.addClass('after');
var b = jQuery('img[title*="before"]');
b.parents('dl.gallery-item').addClass('before');
b.addClass('before');
//the following gives each image a 'name' attribute based on the caption, collapsed.
jQuery('img').each(function() {
var f = jQuery(this).parents('dl.gallery-item').find('dd').text();
var f = f.replace(/\s/g,'');
jQuery(this).attr('name', f);
});
//the following takes each 'name' attribute, finds the before, and sticks it behind the after
jQuery('img.after').hover(function() {
var imgName = jQuery(this).attr('name');
// alert(imgName);
var afterPosition_L = jQuery(this).offset().left;
var afterPosition_T = jQuery(this).offset().top;
var css_string = '{ top: '+ afterPosition_T +'; left: '+ afterPosition_L +'; position: absolute; z-index: 999;}';
var imgBefore = jQuery('img.before[name="'+ imgName +'"]');
// alert(imgBefore);
jQuery(imgBefore).css(css_string);
});
Объяснение: Я работаю с WordPress (поэтому я изложил jQuery).WordPress загружает кучу изображений в галерею (с PHP).Основываясь на некоторых полях для «заголовка» и содержимого заголовка, я определяю, является ли это «до» или «после», и назначаю этот класс как тегу, который оборачивает изображение, так и другим и самому img.Я также назначаю атрибуту name имя изображения на основе текста заголовка.Все это работает хорошо.
«При наведении» дела идут плохо.
При наведении курсора ничего не происходит, но ошибка Lint (в заголовке этого поста) возникает при наведении мыши.
Что должно произойти: во-первых, я получаю имя скрытого изображения и вставляю его в imgName (это работает).Затем, я получаю положение находящегося img
Вот ужасный материал: я пытаюсь идентифицировать изображение с помощью $ ('img.before [name = ""]'), используя переменную имени из 'this ', то есть тот, который мы наведем, и вставьте его в переменную "imgBefore", затем я пытаюсь применить к нему CSS, чтобы переместить его в ту же левую / верхнюю позицию, что и "after", но с другим z-index.
Кажется, что 'img.before [name = ""] является селектором, на который жалуется Lint ... он говорит:
Selector: "img.before[name="CarterLivingRoom"]"
You've used the same selector more than once.
Так что он использует переменнуюправильно.Похоже, дважды выдает ошибку на mouseout.Возможно, hover () использует его дважды, но как этого избежать?