gpt4 book ai didi

jQuery 迭代函数

转载 作者:行者123 更新时间:2023-12-01 04:31:24 25 4
gpt4 key购买 nike

对 jquery 相当陌生,我编写的函数有点问题,与 this 非常相似问题,如果这有什么问题的话,那么显然我有一个关闭问题。正如 Peter Bailey 在上面的帖子中所说,这就是正在发生的事情:

  1. 迭代某些值
  2. 在该迭代中定义/分配一个使用迭代变量的函数
  3. 您将了解到每个函数仅使用上次迭代中的值。
  4. 什么鬼?

这是我的代码:

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 中的图片替换为一张图片,但到最后每个链接都会将图片更改为“联系人”(最后一张)图片。

不太明白如何从其他线程修复它,所以如果有人可以帮忙那就太好了!

最佳答案

您可以只使用 jQuery.each 语句,并通过其结构创建一个闭包。然后,请务必使用 var 声明变量,一切就都准备好了:

var pages=['home', 'about', 'events', 'info', 'qa', 'photos', 'contact'];

$.each( pages, function(){
var $link='"'+"[href$='gaction.php?page="+ this +"']"+'"';
var $source="/images/"+ this +".png";

... rest of function untouched

});

有几种方法可以重写该函数,但老实说,如果您的方法适合您(选择器),那么您就很好。只是,不要使用 fadeOut(0, function ...),只需使用 hide().attr('src', $source ).fadeIn('slow')

关于jQuery 迭代函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2166928/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com