Coffeescript 如何将js行组合成一行?
嗨,我有几个js/mootools代码在一个coffee文件中,我想把它们组合在一起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
$$("#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浏览器添加过渡/动画效果请考虑迪米塔的回答是正确的,它确实指出了一个更好的解决问题的方法。请考虑迪米塔的回答是正确的,它确实指出了一个更好的解决问题的方法。