0

几分钟前我得到了这段代码,它让我想知道是否有一种优雅的方法可以将它优化成更少的行,并且可能会避免切换条件。

        switch(orientation){
            case 'l':
                $('landscapeButton').addClassName('active');
                $('portraitButton').removeClassName('active');
                break;
            default:
                $('landscapeButton').removeClassName('active');
                $('portraitButton').addClassName('active');
        }

是否可以进一步优化此代码?如果是,你将如何完成它?

编辑:我应该包含一些关于我正在使用的库/库的信息。事实上我两者都用,但在这个例子中我使用原型,因为我更喜欢用它来处理 CSS 类名。无论如何,在我的具体情况下,解决方案是在 Prototype 还是 jQuery 中提供并不重要。谢谢大家!

4

1 回答 1

4

对于prototypejs:

如果orientation将是1or 0,请使用带有 switch 参数的函数来适当地切换。

function safeToggleClass(id, clss, switch) {
    return $(id)[(!!switch ? "add" : "remove") + "ClassName"](clss);
}

safeToggleClass('landscapeButton', 'active', +orientation);
safeToggleClass('portraitButton', 'active', !+orientation);

对于 jQuery:

toggleClassjQuery 在他们的方法中内置了这个开关。

$('#landscapeButton').toggleClass('active', +orientation);
$('#portraitButton').toggleClass('active', !+orientation);
于 2012-10-03T20:22:03.407 回答