javascript - 通用 Javascript 图像交换

标签 javascript jquery

我正在构建一个导航栏,其中的图像应该在鼠标悬停时换出;通常我为此使用 CSS,但这次我试图弄清楚 javascript。这是我现在拥有的:

HTML:

<li class="bio"><a href="bio.html" onMouseOver="over_bio(this); return true" onMouseOut="up_bio()"><img src="images/nav/bio.jpg" name="bio" /></a></li>

Javascript:

if (document.images) {
  var bio_up = new Image();
  bio_up.src = "images/nav/bio.jpg";
  var bio_over = new Image();
  bio_over.src = "images/nav/bio-ov.jpg";
}

function over_bio() {
  if (document.images) {
    document["bio"].src = bio_over.src
  }
}

function up_bio() {
  if (document.images) {
    document["bio"].src = bio_up.src
  }
}

但是,所有图像的名称都采用“xyz.jpg”和“xyz-ov.jpg”形式,因此我更愿意只使用适用于导航栏中每个图像的通用函数,而不是每个图像的单独功能。

最佳答案

一个速效解决方案,如果您的所有图像都属于同一类型,该解决方案应该足够稳健:

$("li.bio a").hover(function() {
    var $img = $(this).find("img");
    $img[0].src = $img[0].src.replace(".jpg", "") + "-ov.jpg";
}, function() {
    var $img = $(this).find("img");
    $img[0].src = $img[0].src.replace("-ov.jpg", "") + ".jpg";
});

关于javascript - 通用 Javascript 图像交换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6803847/

相关文章:

javascript - 如何在 JavaScript 中使用 CSS 过滤器?

javascript - $(modalEl).modal ('show' ) 和 $(modalEl).modal ('hide' ) 不工作

javascript - 使用 JS 进行表单检查 : select at least one checkbox and max 2 checkboxes

jquery - 与 Flexigrid 保持一致的网格标题 ?

javascript - CSS:隐藏滚动条。

javascript - jQuery addClass() 返回意外结果

javascript - 无法在 Chrome 扩展中启用 Chrome 架

javascript - 在循环中创建多个具有不同 id 的文本区域

php - 从php数组自动完成显示后点击事件

jquery - JavaScript "Expected ' ]'"