我想在选择按钮后向其添加一个较少的类。
我有一个跟踪按钮列表:
@Inject
@DataField("trackButtonList")
@ListContainer("div")
private ListComponent<Integer, StationTrackButton> trackButtonList;
当我选择其中一个时,我尝试将活动类别设置为相应的按钮:
trackButtonList.setSelector(b -> b.setSelected(true));
trackButtonList.setDeselector(b -> b.setSelected(false));
public void setSelected(boolean isSelected) {
if (isSelected) {
trackButton.classList.add("active");
} else {
trackButton.classList.remove("active");
}
}
当选择一个按钮时,我无法将类别设置为“活动”。但是,如果我在devTools的Google chrome上添加“活动”类,则button将获得相应的背景颜色。
我在html中有此代码:
<div data-field="trackButtonList" class="nav nav-pills nav-fill">
<button data-field="trackButton" class="nav-item nav-link"></button>
</div>
在less文件中:
&.nav-item.nav-link {
&.active {
background-color: @light-green-color;
}}
trackButton是以这种方式注入的:
@Inject
@Named("button")
@DataField("trackButton")
private HTMLElement trackButton;
答案 0 :(得分:0)
我认为LESS代码中有一个小错误,应该是:
.nav-item.nav-link {
&.active {
background-color: @light-green-color;
}
}
尽管如此,我认为问题不存在。我认为这是将组件标记为选中的方式。如果您未使用正确的组件实例作为参数,有时ListComponent.selectComponent()
可能无法正常工作。
尝试改用ListComponent.selectModel()
。