尝试在悬停时更改图像但获得 $var.attr 不是函数错误

Posted

技术标签:

【中文标题】尝试在悬停时更改图像但获得 $var.attr 不是函数错误【英文标题】:Trying to change image on hover but getting $var.attr is not a function error 【发布时间】:2020-08-16 10:41:33 【问题描述】:

我试图在将鼠标悬停在另一个较小的缩略图上时更改缩略图(显示颜色变化)。页面上有多组图像。 html 是动态生成的,所以我通过 JQuery 分配 ID。

我用来为每个图像分配 id 的代码(这很好用):

$('.pretty-item .image-container > a img').each(function (index) 
    $(this).attr("id","id" + index);
  );

代码中的问题行:

$('.pretty-item .image-container > a img').each(function() 
var $mainImg = $(this).attr('id');
$(".catalog-tiny-thumbnail").mouseover(function()
var src = $(this).attr("src");
var doubleWidth = $(this).width()*2;
var doubleHeight = $(this).height()*2;
$mainImg.attr($("src"),src);
$mainImg.css("width":doubleWidth,
                                "height:":doubleHeight);
);
);

$mainImg.attr($("src"), src);正在给出 Uncaught TypeError: $mainImage.attr is not a function

我哪里错了?

【问题讨论】:

这也给出了同样的错误。 $mainImg 是我刚刚注意到的 id,所以 $mainImg.attr($("src"),src);应该是 $("#" + mainImg).attr("src", src)。 漂亮!这样可行!谢谢你。然而,小 img 上的悬停正在更改页面上所有大图像的 src。我应该分开功能吗? 如果可能的话,是的。但是鼠标移出应该发生什么?是否应该再次显示原始图像?我用不同的方法制作了一个小提琴(将主图像的 id 设置为缩略图图像的数据属性)jsfiddle.net/1b94c56z 好的。是的,这很完美。我将如何设置它以在鼠标悬停时显示原始图像? 【参考方案1】:

$mainImg 只是图片的id,所以

 $mainImg.attr($("src"),src);

应该是

 $("#" + $mainImg).attr("src",src);

同样适用

 $mainImg.css("width":doubleWidth,"height:":doubleHeight);

应该是

 $("#" + $mainImg).css("width":doubleWidth,"height:":doubleHeight);

【讨论】:

以上是关于尝试在悬停时更改图像但获得 $var.attr 不是函数错误的主要内容,如果未能解决你的问题,请参考以下文章

悬停链接以更改图像的不透明度

如何使用 SVG 更改悬停时的图像源?

如何使用css更改悬停时图像的不透明度

Bootstrap - 在鼠标悬停时更改图标图像[重复]

在悬停时更改图像颜色而无需更改图像

鼠标悬停更改图像位置和大小