2013-08-24 70 views
0

我有一個<div>,包含兩個<i> S和一個<img>jQuery的if語句和事件處理

<div id="lighbox"> 
    <i class="icon-chevron-sign-left"></i> 
    <img src="#"> 
    <i class="icon-chevron-sign-right"></i> 
</div> 

使用jQuery,我添加了一個事件監聽器#lightbox i

$('#lightbox i').click(function(){ 
     var direction = $(this).attr('class'); 
     if (direction = 'icon-chevron-sign-left'){ 
      alert('left'); 
     }else if(direction ='icon-chevron-sign-right'){     
       alert('right'); 
     } 
}); 

當我打開頁面,然後點擊左邊的標誌,我會收到一條警告say left。但是,如果我點擊正確的標誌,我仍然會收到警告。此外,當我在控制檯寫$('#lightbox i').attr('class'),我只得到:

"icon-chevron-sign-left" 

難道不應該給我的左,右?我的意思是,當我只寫$('#lightbox i'),我得到:

[<i class=​"icon-chevron-sign-left">​</i>,<i class=​"icon-chevron-sign-right">​</i>​] 

回答

3

問題與=你必須使用==

= for assignment 


== for checking the values equal or not.. 

嘗試

if (direction == 'icon-chevron-sign-left'){ 
      alert('left'); 
     }else if(direction =='icon-chevron-sign-right'){     
       alert('right'); 
     } 

Javascript Operators

+0

這是一個語法錯誤。這個問題不符合規定。 –

+0

@MuhammadTalhaAkbar不知道差異和語法錯誤是不一樣的。 –

+0

僅當程序員不知道他在輸入什麼內容或錯誤地輸入時,纔會出現語法錯誤:P –

1

在JavaScript中,你應該使用===而不是=

if(exp === check) 
{ 
    // do something 
}