2011-04-22 117 views
0

我目前正試圖使下面的函數正常工作。最近添加了IF ELSE變量,並且在我的腳本不再有效之後。如果我當然刪除它,一切都會恢復正常,當然減去這個功能。我究竟做錯了什麼?提前致謝!Javascript:函數故障

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

」。 – Flash 2011-04-22 06:29:20

回答

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"); } 
    }) 

}) 
+0

這樣一個小錯誤,我完全錯過了!非常感謝! – Dustin 2011-04-22 06:36:45

+0

@ Dboy1612:曾經當我學習PHP的時候,我花了八個凡人HOURS試圖調試一個腳本,它不會正確運行。問題是缺少分號。它發生了。 – 2011-04-22 06:59:21

+0

在PHP中缺少分號會報告爲錯誤。所以你應該啓用error_reporting(E_ALL)和display_errors = – ThiefMaster 2011-04-22 08:18:47

0

正如@威爾馬丁指出的,你錯過了匹配的大括號。

考慮使用Douglas Crockford's JavaScript code conventions,其中包括對條件語句的每個部分使用大括號。這種做法可能會幫助您避免這類錯誤,例如:

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

好建議。謝謝! – Dustin 2011-04-23 03:36:36

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"); 
     } 
    }); 
});