【问题标题】:What is wrong with my jQuery src changing code?我的 jQuery src 更改代码有什么问题?
【发布时间】:2012-05-23 22:51:37
【问题描述】:

当您将鼠标悬停在图像上时,我正在尝试更改图像的 src。这是我的尝试,但它不起作用:

HTML:

<img src="images/work.png" id="work"/>

jQuery:

$(document).ready(function() {
    $("#work").mouseover(function() {
        $(this).attr("src", "images/workH.png");
    });
    $("#work").mouseout(function() {
        $(this).attr("src", "images/work.png");
    });
});

编辑 1: @埃里克: 我再次尝试了这段代码,但使用的是 200x200px 的 img。代码运行良好。是不是我的标志图片太小了?

编辑2: 我解决了这个问题!麻烦各位大佬抱歉。但是感谢您对此的帮助。

我在工作图像上方写了一个徽标图像。它处于浮动状态,允许工作图像停留在其下方。大多数标志图像是透明的,使工作图像可见。 但是,当我将鼠标悬停在我的图像上时,它们并没有改变,因为徽标挡住了。

捂脸瞬间

【问题讨论】:

  • 它不工作,这意味着?
  • 如果可以,请考虑使用 div 和带有 :hover 伪选择器的背景来执行此操作。 CSS 已经提供了在悬停时更改图像的功能,所以除非你做进一步的事情,否则当功能已经为你构建时,编写额外的 js 是没有意义的。

标签: jquery hover mouseover src attr


【解决方案1】:

什么都没有。它应该可以正常工作。你的两张图不一样吗?是否包含 jQuery 库?


您可以将代码简化为:

$(document).ready(function() {
    $("#work").hover(function() {
        $(this).attr("src", "images/workH.png");
    }, function() {
        $(this).attr("src", "images/work.png");
    });
});

【讨论】:

  • 如果您真的很想简化,您可能想用$.attr(this, 替换$(this).attr(。它快得多
  • @JosephSilber:简化!= 优化。还有,这是真的吗?
  • 两张图片不同且链接正确。我将来自 jquery.com 的 jQuery v1.7.2 附加到我的 HTML 中。如果我向您展示 HTML 的其余部分会有帮助吗?
  • @Eric - 你是对的。我的错。至于是否属实;绝对是。 Paul Irish 最近一直在谈论这个问题。当您执行$(this) 时,您正在创建一个全新的jQuery 对象及其所有方法和属性!只需使用$[methodName](this, params),您就可以使用主 jQuery 对象。
  • @JosephSilber:很有趣。你有讨论这个的博客链接吗?
猜你喜欢
  • 1970-01-01
  • 2011-07-28
  • 1970-01-01
  • 2019-06-06
  • 1970-01-01
相关资源
最近更新 更多