首先,即使为false, if语句也会继续运行



我遇到了一个问题,我的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">');
        }
});

使用

if (thumbCheck == 1)

==(比较)而不是=(赋值)。

使用== 比较运算符代替= 赋值运算符

thumbCheck == 1

thumbCheck = 1

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

  • http://www.jshint.com/:复制你的代码,点击"使用jQuery"one_answers"Lint"。它会说"期望一个条件表达式,而不是看到一个赋值",并且还指出你没有使用严格模式,thumbCheck没有在这个代码片段中定义。
  • http://www.jslint.com/:是一个更严格的替代方案(jshint是在此基础上构建的,以便更容易操作)。你会在这里看到更多的问题,但是当你开始的时候,它可能有点势不可挡,而且它对好风格的想法有点咄咄逼人。

最新更新