首先if语句即使在false时仍保持运行

时间:2013-06-02 23:47:26

标签: javascript if-statement

我遇到了if语句的问题,一直在检查它们并使用控制台日志来确保我的变量在事先声明时变为某个数字,当div被悬停时,变量确实会发生变化

但是由于某种原因,当变量等于某个值时应该触发的语句不会改变,它会继续运行第一个IF而我似乎无法弄清楚为什么,这是我的语法:

$('.work_thumbs').click(function()
{
    $('#shadow').fadeTo(200, 0.7);
    $('#image_holder').delay(200).show();

    if (thumbCheck = 1) {
                $('#image_holder').append('<img     style="cursor:pointer" class="holder_contents"     src="file:///C:/Users/Martin/martin_bodger/images/hi_res_images/ccda_exhibit.jpg">');

        } else if (thumbCheck = 2) {
                $('#image_holder').append('<img     style="cursor:pointer" class="holder_contents"     src="file:///C:/Users/Martin/martin_bodger/images/hi_res_images/yourock.png">');

        } else if (thumbCheck = 3) {
                $('#image_holder').append('<img     style="cursor:pointer" class="holder_contents"     src="file:///C:/Users/Martin/martin_bodger/images/hi_res_images/visualsynopsisposter.png">'    );

        } else if (thumbCheck = 4) {
                $('#image_holder').append('<img     style="cursor:pointer" class="holder_contents"     src="file:///C:/Users/Martin/martin_bodger/images/hi_res_images/awesome.jpg">');

        } else if (thumbCheck = 5) {
                $('#image_holder').append('<img     style="cursor:pointer" class="holder_contents"     src="file:///C:/Users/Martin/martin_bodger/images/hi_res_images/gameover.png">');

        } else {
                $('#image_holder').append('<img style="cursor:pointer" class="holder_contents" src="file:///C:/Users/Martin/martin_bodger/images/hi_res_images/whereisbill.png">');

        }

});

3 个答案:

答案 0 :(得分:4)

使用

if (thumbCheck == 1)

==(比较)而不是=(作业)。

答案 1 :(得分:3)

使用== 比较运算符代替= 分配运算符

thumbCheck == 1

thumbCheck = 1

答案 2 :(得分:1)

现有答案是正确的(将作业=更改为比较==),但为了将来参考,您可以使用免费提供的jslint和jshint工具解决此类简单问题;

  • http://www.jshint.com/:复制您的代码,点击“使用jQuery”和“Lint”。它会说“预期一个条件表达式,而是看到一个作业”,并且还指出你没有使用严格模式,并且在此片段中没有定义thumbCheck
  • http://www.jslint.com/:是一个更严格的选择(jshint是由此构建的,更容易实现)。你会在这里看到更多的问题,但是当你开始使用时,它可能有点压倒性,而且它对于好风格的想法有点过分。