Javascript:功能故障

时间:2011-04-22 06:25:51

标签: javascript jquery

我正在尝试使下面的功能正常工作。最近添加了IF ELSE变量,并且在我的脚本不再有效之后。如果我当然删除它,一切都恢复正常,当然减去那个功能。我究竟做错了什么?提前谢谢!

var image3 = $("#image3");

$(function() {
 $("#ID-OF-LINK-1").click(function() {
        $("#image1").attr("src","./image1.jpg");
        $("#image2").attr("src","./image2.jpg");
            if (image3.src != "./image3.jpg"){
                ("#image3").attr("src","./image4.jpg"); }
            else
                ("#image3").attr("src","./image3.jpg"); }
  })

})

3 个答案:

答案 0 :(得分:1)

不匹配的花括号。在“其他”之后你需要另一个开口大括号。试试这个:

var image3 = $("#image3");

$(function() {
 $("#ID-OF-LINK-1").click(function() {
        $("#image1").attr("src","./image1.jpg");
        $("#image2").attr("src","./image2.jpg");
            if (image3.src= "./image3.jpg"){
                ("#image3").attr("src","./image4.jpg"); }
            else {
                ("#image3").attr("src","./image3.jpg"); }
  })

})

答案 1 :(得分:1)

("#image3").attr("src","./image4.jpg");

应该是

$("#image3").attr("src", "./image4.jpg");

当然("#image3").attr("src","./image3.jpg");相同

除此之外,正如其他人已经说过的那样,你忘记了一些花括号。

这是一个正确的版本,它还修复了一些其他问题(在image3上正确的属性访问并重新使用在开头创建的image3 jQuery对象):

$(function () {
    var image3 = $("#image3");
    $("#ID-OF-LINK-1").click(function () {
        $("#image1").attr("src", "./image1.jpg");
        $("#image2").attr("src", "./image2.jpg");
        if (image3.attr('src') != "./image3.jpg") {
            image3.attr("src", "./image4.jpg");
        } else {
            image3.attr("src", "./image3.jpg");
        }
    });
});

答案 2 :(得分:0)

正如@Will Martin指出的那样,你错过了匹配的大括号。

考虑使用Douglas Crockford's JavaScript code conventions,其中包括对条件语句的每个部分使用花括号。这种做法可以帮助您避免这些类型的错误,例如:

//...
if (image3.src != "./image3.jpg") {
  ("#image3").attr("src","./image4.jpg");
} else {
  ("#image3").attr("src","./image3.jpg");
}