我正在尝试使下面的功能正常工作。最近添加了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"); }
})
})
答案 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");
}