javascript – 如何从ul li中触发onblur?
作者:互联网
我基本上是在点击时突出显示每个li,并且想要在单击其他地方或标记时(通过影响background-color属性)“取消突出显示”所点击的li.
这种行为基本上是模仿< select>在它的’突出显示行为中……我不是在使用select,因为我想在列出的项目中嵌套HTML – 你不能用< option>来做到这一点.
我正在尝试使用onblur,这是行不通的……
这是HTML:
<ul id = "list">
<li>asdf</li>
<li>qwerty</li>
<ul>
……这是CSS:
#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);
};
解决方法:
既然你已经在使用JQuery了……
<ul id = "list">
<li tabindex="1">asdf</li>
<li tabindex="2">qwerty</li>
<ul>
var ul = $("#list");
ul.on('click focus','li',function(){
$(this)
.css("background-color","#FFFF00")
.siblings().css('background','');
}).on('blur','li',function(){
$(this).css('background','');
});
当你离开列表项时,我不确定你想要的效果……似乎你只想让它突出显示.您可以通过为列表项提供tabindex属性来为列表项添加焦点功能.
标签:jquery,javascript,css,javascript-events,html-lists 来源: https://codeday.me/bug/20190709/1409013.html