Кажется, что были заданы похожие вопросы, но они не совсем соответствуют тому, что я пытаюсь сделать.
Я делаю виджет дерева доступным с клавиатуры.Какой бы элемент списка ни был выбран, к нему должен быть применен цвет фона, но я не хочу, чтобы этот цвет фона применялся к его дочерним элементам.Как мне это сделать?Вот что у меня сейчас:
// javascript
$(rootLi).focus(function(event) {
$(this).addClass('focusNode');
});
// css
.focusNode {
background-color: orange;
}
Но тогда все дети оранжевые.Я также попытался применить цвет фона к span
, который содержит отображаемый текст для li
, но когда я это сделаю, все элементы span
во вложенном дереве также будут выделены.
Я признаю, что я довольно слаб с моим CSS.Может кто-нибудь посоветовать?Спасибо!
Редактировать
Меня попросили опубликовать HTML.Я думаю, что моя проблема довольно проста, но я думаю, что это не может повредить:)
<div id="treewidget">
<ul role="tree" aria-activedescendant="rootItem" tabindex="0">
<li id="rootItem" tabindex="0" role="treeItem" data-id="1" aria-expanded="true"
aria-labelledby="contentFor1">
<a href="javascript:void(0);" class="expanded"></a> <span id=
"contentFor1">foo</span>
<ul role="group">
<li tabindex="0" role="treeItem" data-id="2" aria-expanded="true"
aria-labelledby="contentFor2"><a href="javascript:void(0);" class=
"expanded"></a><span id="contentFor2">bar</span></li>
<li tabindex="0" role="treeItem" data-id="3" aria-expanded="true"
aria-labelledby="contentFor3"><a href="javascript:void(0);" class=
"expanded"></a><span id="contentFor3">baz</span></li>
</ul>
</li>
</ul>
</div>