Довольно новичок в jquery и небольшая проблема с написанной мной функцией, очень похожей на эта проблема, и если что-то происходит, то, по-видимому, у меня проблема с закрытием. Как сказал Питер Бейли в вышеупомянутой теме, происходит следующее:
- Перебрать некоторые значения
- Определить / назначить функцию в этой итерации, которая использует повторяющиеся переменные
- Вы узнаете, что каждая функция использует только значения с последней итерации.
- Какого черта?
Это мой код:
var pages=['home', 'about', 'events', 'info', 'qa', 'photos', 'contact'];
for (i in pages) {
$link='"'+"[href$='gaction.php?page="+(pages[i])+"']"+'"';
$source="/images/"+(pages[i])+".png";
$($link).hoverIntent(function() {
$('#logo_text').stop(true, true).fadeOut(
0,
function() {
$('#logo_text').attr('src', $source).fadeIn('slow'); // swaps logo
});
}, function() {
$('#logo_text').stop(true, true).pause(300).fadeOut(
0,
function () {
$('#logo_text').attr('src', '/images/name.png').fadeIn('slow'); //swaps back
});
});
}
Я знаю, что определение $ link довольно запутанное, но этот бит работает.
Функция предназначена для замены изображения в #logo_text на изображение в зависимости от ссылки, на которую наведен курсор, но к ее концу каждая ссылка меняет изображение на «контактное» (последнее).
Не совсем понял, как исправить это из другого потока, поэтому, если кто-то может помочь, это было бы здорово!