2013-11-01 36 views
0

我很新的Javascript/jquery和我正在實現一個真正簡單的圖像輪播練習和碰到一個關於jquery的「點擊」方法的問題。Javascript .click()不同的元素瓦特/相同的類

我目前擁有的代碼如下:

$(document.getElementsByClassName("traverse")).click(function() { 
    if(this.id = "left"){ 
     if (current == 0) { 
      current = images.length-1; 
     } 
     else { 
      current -= 1; 
     } 
    } 
    else if(this.id = "right") { 
     if(current = images.length-1) { 
      current = 0; 
     } 
     else { 
      current += 1; 
     } 
    } 
    $(document.getElementById("image-view")).css("background-image", "url(" + images[current] + ")"); 
}); 

有了這個代碼沒有錯誤,但我每次單擊了「#right」或「#left」按鈕,它們都運行代碼就好像「this.id ='離開'」一樣。雖然我明白我可以簡單地分開這兩個,這將工作得很好,有沒有一種方法可以做到這一點,類似於我現在將這個事件應用於課堂的地方,但通過ID區分行爲?

謝謝!

回答

4

錯字

==compare

=assign

嚴格相等(===)如果操作數相等, 相同類型的,則返回true

if(this.id === "left"){ 
      ^


和更好地利用

class selector

$('.traverse').click(function(){ .. }); 

問題與您的代碼

你分配this.id = "left"中,如果狀態,從而爲條件,每次總是真

if(this.id = "left"){ 
+2

+1。由於您知道結果的類型,請考慮使用適當的'==='進行比較。 –

1

設置this.idleft僅使用單個=跡象。試試這個:

$(document.getElementsByClassName("traverse")).click(function(event) { 
    if(event.target.id === "left"){ 

等等。

+0

+1。由於您知道結果的類型,請考慮使用適當的'==='進行比較。 –

+0

@AlexeiLevenkov更新,謝謝。 –