我遇到了一个问题,我的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是在此基础上构建的,以便更容易操作)。你会在这里看到更多的问题,但是当你开始的时候,它可能有点势不可挡,而且它对好风格的想法有点咄咄逼人。