当点击每个li
时,我会将其突出显示,并希望在单击其他位置或切换标签时“取消突出显示”所单击的li
(通过影响background-color
属性)。
这种行为实际上是在模拟<select>
中的突出显示行为... 我没有使用select
,因为我想嵌套HTML在列出的项中 - 你不能使用<option>
实现这一点。
我试图使用onblur
,但它不起作用...
以下是HTML代码:
<ul id = "list">
<li>asdf</li>
<li>qwerty</li>
<ul>
#list {
list-style-type: none;
}
以下是jQuery/Javascript代码:
function getEventTarget(e) {
e = e || window.event;
return e.target || e.srcElement;
}
function highlightSelection(selection) {
alert("It worked!");
$(selection).css("background-color","#FFFF00");
}
// this function is not being triggered:
function removeHighlight(selection) {
$(selection).css("background-color","none");
}
var ul = document.getElementById("list");
ul.onclick = function(event) {
var target = getEventTarget(event);
highlightSelection(target);
};
// this event is not working:
ul.onblur = function(event) {
var target = getEventTarget(event);
removeHighlight(target);
};
ul
上设置了监听器。 - Dek Dekkutabindex = "1"
添加到ul
,或者任何整数分配,都会使li
获得焦点。然而,这个技巧并不能只允许一个li
被突出显示。 - Ian Campbell