我有以下JQuery代码片段:
(someVar.next().length == 0)?someVar.fadeOut().end().find("ul").first().fadeIn():someVar.fadeOut().next().fadeIn();
在条件函数的两个结果--即someVar.fadeOut()和.fadeIn() --之间有相当多的代码重复。
理想情况下,我喜欢这样的东西:
someVar.fadeOut().((someVar.next().length == 0)?end().find("ul").first():next()).fadeIn();
但是这不起作用:) Safari开发人员工具报告了一个语法错误,但我没有足够的技能来解决如何正确处理它。
如果它不能被缩短,那么直接说也没问题:)
发布于 2010-09-22 15:47:41
不是很多,没有-或者至少不是以一种合理的方式(有一些游戏你可以玩字符串和括号符号,但它们会让你的例子变得更糟,而不是更好)。您可以将fadeOut
移到它自己的语句中:
someVar.fadeOut();
(someVar.next().length == 0)?someVar.end().find("ul").first().fadeIn():someVar.next().fadeIn();
...but在那之后,链在不同的方向上进行。
发布于 2010-09-22 15:55:12
也许有点离题,所以我把它变成了CW,但是:当事情变得像这样长的时候,我能不能直接去争取好的老式if/else
语句呢?
someVar.fadeOut();
if (someVar.next().length === 0) {
someVar.end().find("ul").first().fadeIn();
}
else {
someVar.next().fadeIn();
}
大约是易读和易维护的八倍,IMHO。
https://stackoverflow.com/questions/3771033
复制相似问题