编辑 - 我改变了我的代码:
这很好用:
$(".image-div").click(function () {
if ($(this).css('z-index') == 1)
$(this).css('z-index','2');
else
$(this).css('z-index','1');
});
这也有效:
$(".image-div").click(function () {
if ($(this).css('z-index') == 1)
$(this).animate({
width: '500px'
}, 5000, function() {
// Animation complete.
});
else
$(this).animate({
width: '250px'
}, 5000, function() {
// Animation complete.
});
});
但这没有做任何事情:
$(".image-div").click(function () {
if ($(this).css('z-index') == 1)
$(this).css('z-index','2');
$(this).animate({
width: '500px'
}, 5000, function() {
// Animation complete.
});
else
$(this).css('z-index','1');
$(this).animate({
width: '250px'
}, 5000, function() {
// Animation complete.
});
});
由于
答案 0 :(得分:7)
是。 if&之后没有开始{
或结束}
在别的地方之前。
此外,它看起来像是底部的双});
。
答案 1 :(得分:2)
看起来你需要围绕你的花括号...否则,其他是浮动的,如果没有连接。
[ADDED] 好的,任何带有多个语句的控件都需要花括号。以下工作正常,没有花括号,因为每个控件后只有一个语句:
if( condition ) doSomething();
else doSomethingElse();
但是,这会破坏:
if( condition )
doSomething();
doAnotherThing();
else
doSomethingElse();
为什么呢?因为在这种情况下,IF只涵盖了这个:
if( condition )
doSomething();
然后,你坐在不知名的地方:
doAnotherThing();
else
doSoemthingElse();
doAnotherThing不包含在if()中,因此也不是你的其他{}。所以,你的其他人失去了对if和代码中断的依恋。恕我直言,最好的做法总是使用花括号,因为如果你不这样做,你或其他人可能会进入并将doAnotherThing()行添加到代码中,认为它包含在if()中并且无意中破坏了代码
那就是说,你的if / else都包含多个语句。因此,从严格的语法点来看,您的代码必须是:
$(".image-div").click(function () {
if ($(this).css('z-index') == 1) {
$(this).css('z-index','2');
$(this).animate({
width: '500px'
}, 5000, function() {
// Animation complete.
});
}
else {
var divRef = this;
$(this).animate({
width: '250px'
}, 5000, function() {
$(divRef).css('z-index','1');
});
}
});