Coffeescript 如何将js行组合成一行?

Coffeescript 如何将js行组合成一行?,coffeescript,mootools,Coffeescript,Mootools,嗨,我有几个js/mootools代码在一个coffee文件中,我想把它们组合在一起 $$("#head").setStyle('border-right-color','#e64626'); $$("#head").setStyle('background','#e64626'); $$("#console").setStyle('border-right-color','#e64626'); $$("#console").set

嗨,我有几个js/mootools代码在一个coffee文件中,我想把它们组合在一起

        $$("#head").setStyle('border-right-color','#e64626');
        $$("#head").setStyle('background','#e64626');
        $$("#console").setStyle('border-right-color','#e64626');
        $$("#console").setStyle('background','#e64626');

是否可以将其合并为一行?

您可以使用
setStyles()
并向其传递一个对象。您还可以在传递给
$$
的字符串中使用
来选择多个元素。因此,这将导致:

$$("#head, #console").setStyles({
    'border-right-color': '#e64626',
    'background': '#e64626'
});

jsiddle:您可以使用
setStyles()
并向其传递一个对象。您还可以在传递给
$$
的字符串中使用
来选择多个元素。因此,这将导致:

$$("#head, #console").setStyles({
    'border-right-color': '#e64626',
    'background': '#e64626'
});

jsFiddle:虽然@sergio给了你正确的答案,你想要的是什么,但这可能是错误的(虽然他的答案没有错,但问题是错的)

在JavaScript中为effects设置元素内联样式不是一个很好的实践。它在动画/fx中有其用途,但情况似乎并非如此。其原因是,由于高度的特异性,它打破了级联,使其更难恢复、控制或事后更改。这也使得你的应用程序更难进行外观设计和重新设计,因为它明显缺乏关注点的分离,代码风格僵化

你需要通过CSS来解决这个问题

场景1:静态的,不可变的-由于使用ID而不是类,所以不是很好,但是:

#head, #console {
    border-right-color: #e6426;
    background-color: #e6426;
}
场景2:动态,需要区分某些事件上的元素,例如
单击
焦点
鼠标悬停
——尽管您可以使用诸如
:焦点
:悬停
之类的伪命令来解决大多数问题,但请将其抽象为一个类:

css:

javascript:

var els = $$('#head,#console');

// on whatever event... 
els.addClass('highlight-red');
// ... later
els.removeClass('highlight-red');

你以后会感谢你自己,或者你的继任者会感谢你自己,或者你的客户,不管怎样。这样做还有一个额外的好处,即下次您需要更改样式或添加更多规则来区分时,您可以选择一个地方。您甚至可以为evergreen浏览器添加过渡/动画效果

尽管@sergio给了你正确的答案,你想要的是什么,但这可能是错误的(虽然他的答案没有错,但问题是错的)

在JavaScript中为effects设置元素内联样式不是一个很好的实践。它在动画/fx中有其用途,但情况似乎并非如此。其原因是,由于高度的特异性,它打破了级联,使其更难恢复、控制或事后更改。这也使得你的应用程序更难进行外观设计和重新设计,因为它明显缺乏关注点的分离,代码风格僵化

你需要通过CSS来解决这个问题

场景1:静态的,不可变的-由于使用ID而不是类,所以不是很好,但是:

#head, #console {
    border-right-color: #e6426;
    background-color: #e6426;
}
场景2:动态,需要区分某些事件上的元素,例如
单击
焦点
鼠标悬停
——尽管您可以使用诸如
:焦点
:悬停
之类的伪命令来解决大多数问题,但请将其抽象为一个类:

css:

javascript:

var els = $$('#head,#console');

// on whatever event... 
els.addClass('highlight-red');
// ... later
els.removeClass('highlight-red');

你以后会感谢你自己,或者你的继任者会感谢你自己,或者你的客户,不管怎样。这样做还有一个额外的好处,即下次您需要更改样式或添加更多规则来区分时,您可以选择一个地方。您甚至可以为evergreen浏览器添加过渡/动画效果