[更新]我的不好..我没有正确查看代码..我应该发现这么小的错误..太遗憾了......我现在想删除这个问题,但无济于事......如果有人能帮我删除它会很棒。我不认为这样一个愚蠢的问题应该在这里。
我有这个功能: 功能魔法(a,b,c){
$("#a").on("mouseover", "."+a, function() {
$("#a").css("background", b).css("left", c);
alert(a);
if(a="a"){
b = "b";
c = "10%";
}else{
b = "a";
c = "0%";
}
alert(b);
alert(c);
$("#a").animate({
"top":c
},{
duration:2000,
complete:function(){
$("."+a).addClass(b).removeClass(a);
}
});
});
}
After I execute it twice with different arguments `onLoad`
magic("a","black","10px");
magic("b","red","2px");
第一次 mouseover
.a
,
它应该 alert
“a”,“b”然后是“10%”,
* ,确实如此。 *
但是,第二次 mouseover
以前是 - .a
(现在是.b
),
而不是alert
“b”,“a”,“0%”,
* 奇怪的是,alert
“b”,然后是“b”,然后是“10%”。 *
我可以给出的结论是,在经历时
如果(α= “A”){
b =“b”;
c =“10%”;
}其他{
b =“a”;
c =“0%”;
}
对待a
,因为它已被分配"a"
而不是"b"
但那时它已经alert
“b”..
(这是演示:http://jsfiddle.net/UqRdZ/)
如果有人能解释并提供解决方案,我将不胜感激。
答案 0 :(得分:3)
比较运算符为==
,而不是=
所以
if(a == "a"){ ...
答案 1 :(得分:0)
if(a = "a"){
不是
if(a == "a"){
- 前者将"a"
分配给a,然后"返回" a
作为表达式值,第二个进行比较并返回true
或false
。
答案 2 :(得分:0)
它不是非常奇怪的行为,您使用赋值运算符=
而不是始终为==
的比较运算符true
:
if(a == "a"){
b = "b";
c = "10%";
} else {
b = "a";
c = "0%";
}
答案 3 :(得分:0)
if(a = "a"){..}
应该是
if(a == "a"){...}
或
if(a === "a"){...}