Javascript If / Else语句更改img src

时间:2011-01-04 23:29:27

标签: javascript image fadein if-statement src

我有一个功能下降的动态下拉菜单,我想添加一些功能。菜单是页面导航,悬停在链接上会更改内容区域中图像的来源,反映活动链接。这是一个简单的attr(src)变化。

我添加了一些代码来淡化活动图像,将源恢复为默认值,然后在离开菜单时将其淡化并返回,但是想在If / Else语句中构造该代码;如果图像的来源与默认值相同,则防止图像淡出和重新进入。

语法似乎正确,但功能无法正常工作。我比较新,很可能会遗漏一些东西。我非常感谢任何有关功能,更可靠的代码的建议!

感谢您的时间, 丹尼尔


else语句中嵌入的函数(淡出,更改源,淡入)按照我的意愿运行。

$("#trigger").mouseleave(function(){
    var img = $("#img_home");
    if (img.src = "Images/IMG_4663_bw.jpg"){
      img.noop();
    } else {
      img.fadeOut(1000, function(){
         img.attr("src","Images/IMG_4663_bw.jpg");
         img.fadeIn(1000);
      });
    }
});

4 个答案:

答案 0 :(得分:3)

if (img.src = "Images/IMG_4663_bw.jpg")

分配该值,您需要==运算符,而不是=运算符。
如果您只是查找else条件,只需反转条件:

if (img.attr('src') != "Images/IMG_4663_bw.jpg") {
    // fade and stuff
}

答案 1 :(得分:1)

img是一个jQuery对象 您需要通过调用img.attr('src')来访问其属性。

您的if条件指定 img属性;要检查是否相等,您需要使用==(相等)或===(严格相等)运算符。

jQuery的noop方法是一种静态方法;你可以写jQuery.noop()来表达它。

最后,调用noop()毫无意义。首先,一对没有语句的空括号没有错:if (something) { } else { ... } 此外,您可以反转if条件并删除else

if (img.attr("src") === "Images/IMG_4663_bw.jpg") {
  img.fadeOut(1000, function() {
     img.attr("src", "Images/IMG_4663_bw.jpg").fadeIn(1000);
  });
}

答案 2 :(得分:0)

尝试

$("#trigger").mouseleave(function(){
var img = $("#img_home"); 
 if (img.src == "Images/IMG_4663_bw.jpg"){
  img.noop(); 
 } 
 else {
  img.fadeOut(1000,function(){
  img.attr("src","Images/IMG_4663_bw.jpg");
  img.fadeIn(1000); 
  }); 
 } 
});

不同之处在于将该源与图像路径字符串进行比较。它应该是'=='

答案 3 :(得分:0)

语法不正确。您需要在==语句中使用if()而不是=,而src会执行分配而不是比较。

此外,为了直接访问[0]属性,您需要从DOM元素执行此操作。您可以使用img从jQuery对象中获取第一个if (img[0].src == "Images/IMG_4663_bw.jpg"){ $.noop(); // The noop is called from the global jQuery object. //...

{{1}}