0

我有一个<div>, 包含两个<i>s 和一个<img>:

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

当我打开页面并单击左侧标志时,我会收到一条警报 sayin left。但是,如果我点击右边的标志,我仍然会收到一个警告说左边。$('#lightbox i').attr('class')此外,当我在控制台中编写时,我只得到:

"icon-chevron-sign-left"

它不应该给我左右吗?我的意思是当我写的时候$('#lightbox i'),我得到:

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

2 回答 2

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 运算符

于 2013-08-24T14:39:38.377 回答
1

在 javascript 中你应该使用 === 而不是 =

if(exp === check)
{
    // do something
}
于 2013-08-24T14:41:38.060 回答