0

我正在尝试创建一个 HTML 小部件:

HTML:

<div>
    <h1 class="title" data-bind="title">Title</h1>

    <div>
        <h1 id = "dc1" class="dc">DC1</h1>
    </div>
    <div>
        <h1 id = "dc2" class="dc">DC2</h1>
    </div>

    <p class="updated-at" data-bind="updatedAtMessage"></p>
</div>

而且我需要能够在 CoffeeScript 中动态设置id="dc1"id="dc2"元素的背景颜色。我计划通过添加一个具有背景颜色设置的类来做到这一点:

SCSS:

&.up {
    background-color: green;
}

&.down {
    background-color: red;
}

.dc {
    background-color: orange;
    font-size: 30px;
    float: left;
    width: 50%;
}

到目前为止,我已经设法设置了整个小部件背景,但没有设置上面提到的子元素:我一直在使用:

咖啡脚本:

$(@node).removeClass('up down')
$('#dc1').removeClass('up down')
$('#dc2').removeClass('up down')

$(@node).addClass('down')
$('#dc1').addClass('down')
$('#dc2').addClass('up')

请注意,最终我将根据一些数据添加类,而不是将它们硬编码为咖啡脚本中的“向上”或“向下”。

但是什么也没发生。我id="dc#"是否正确选择了元素?

如果它对上下文有帮助,我正在为Dashing做这个

4

1 回答 1

1

你的 SCSS 没有意义,所以我猜你错过了 SCSS 到 CSS 转换的错误。&SCSS 中的An是对父选择器的引用

&将被替换为父选择器,因为它出现在 CSS 中

所以&.up在顶层有没有意义,应该会产生错误。如果我们修复 SCSS.up并且.down仅适用于.dc

.dc {
    /* ... */
    &.up {
        background-color: green;
    }
    &.down {
        background-color: red;
    }
}

然后一切似乎都很好。

演示:http: //jsfiddle.net/ambiguous/9y9uywm9/

您可以使用Sassmeister(和其他类似的在线工具)查看 SCSS 对您的原始 SCSS 的看法。

于 2014-11-15T19:04:34.313 回答