Так что вопрос в том, что вы пытаетесь установить свой обработчик на динамический селектор («IMG #» + J), но это не будет работать. Во-первых, это уравнение будет оцениваться только один раз, при загрузке страницы, когда j не определено.
Так что вы хотите сделать это вместо того, чтобы:
- цель только IMG тегов для мыши над ... А еще лучше, чтобы вашими специальными изображениями все тот же класс CSS, так что вы можете прикрепить обработчик событий только те. Это будет более эффективно.
Когда изображение вымывается над или из него, возьмите его атрибут id, извлеките из него номер, а затем используйте его для создания селектора для соответствующего диапазона для отображения.
var get_span_from_image = function (изображение) { var image_id = image.attr ("id"); var matches = image_id.match (/ theImg (\ d +) /); if (matches) return $ ("theSpan" + matches [1]); return $(); // ничего не найдено, верните пустой выбор jQuery }; . $ ("IMG") парение ( функции() {// мыши над get_span_from_image ($ (это)) шоу();. }, функции() {// разнюхивать get_span_from_image ($ (это)). hide(); } );
Примечание: Есть более эффективные способы «связывать» два узла вместе, но это только, чтобы ответить на ваш вопрос с текущей структурой у вас есть.
UPDATE: Некоторые идеи связать два узла вместе
Таким образом, вместо того, чтобы пытаться извлечь число из атрибута ид, лучше всего было бы сказать, ни один из изображения или пядь о его родной брат , Вы можете выводить свой HTML, как это, например:
<img id="theImg1" data-target="theSpan1" class="hoverable" src="..."/>
....
<span id="theSpan1">...</span>
Конечно теперь ваши идеи могут быть все что угодно - вы не должны использовать пронумерованные значения или что-нибудь.
Тогда ваш код парения становится довольно просто:
var get_span_from_image = function(image) {
var span_id = image.data("target");
return $("#" + span_id);
};
$("img").hover(
function() { // mouse over
get_span_from_image($(this)).show();
},
function() { // mouse out
get_span_from_image($(this)).hide();
}
);
Надеется, что это помогает!
Вы говорите, что для каждого «theImg» + я есть соответствующий диапазон с идентификатором «theSpan» + я (тот же номер для обоих) ? – MacPrawn
Да, правильно, я добавил его в цикл итерации – Felnyr