我想要实现的是,当将鼠标悬停在具有id =" a"的li上时,相应的ul具有id =" aa"出现。我有这个HTML代码:
celery -A tasks worker --loglevel=info
和这个javascript代码:
<ul>
<li id="1">Option1</li>
<li id="2">Option2</li>
</ul>
<ul id="11">
<li>Option1.1</li>
<li>Option1.2</li>
</ul>
<ul id="22">
<li>Option2.1</li>
<li>Option2.2</li>
</ul>
并且它按预期工作,但here用户Jordan Gray表示可以摆脱循环,而是为所有列表项创建一个事件监听器 - 这就是我想在这里实现的。不幸的是,我不理解他的代码,如果有人能向我解释或建议解决方案,我会感激不尽。
答案 0 :(得分:0)
您可以为父ul
添加事件侦听器,并在此侦听器中使用目标元素,以便了解它触发的li
。
ctn.addEventListener('mouseover', function(event) {
// eventually safeguard it with: if (event.target.tagName !== 'LI') return
id = event.target.id.repeat(2)
document.getElementById(id).style.opacity = 1
}, false);
.passive {
opacity: 0;
}
<ul id="ctn">
<li id="a">Option1</li>
<li id="b">Option2</li>
</ul>
<ul id="aa" class="passive">
<li>Option1.1</li>
<li>Option1.2</li>
</ul>
<ul id="bb" class="passive">
<li>Option2.1</li>
<li>Option2.2</li>
</ul>
答案 1 :(得分:0)
以下是如何在代码中使用该逻辑:
File encryptedFile = new File("/Users/aktasberk/Desktop/Encrypted_"+inputFile.getName());
File encryptedFile;
答案 2 :(得分:0)
var container = document.getElementById('container');
container.addEventListener('click', function(e) {
if (e.target.nodeName.toUpperCase() !== "LI") return;
var li = e.target;
var ul = document.getElementById(li.id+li.id);
li.addEventListener("mouseover", function() {
ul.style.opacity = "1";
ul.style.background = "blue";
ul.style.color = "red";
}, false);
});
<div id="container">
<ul>
<li id="1">Option1</li>
<li id="2">Option2</li>
</ul>
<ul id="11">
<li>Option1.1</li>
<li>Option1.2</li>
</ul>
<ul id="22">
<li>Option2.1</li>
<li>Option2.2</li>
</ul>
</div>
答案 3 :(得分:0)
等待悬停LI,然后显示其对应的元素:
window.addEventListener("mouseover",function(e){
var el = e.target;
if(el.id && parseInt(el.id) < 10){
document.getElementById(el.id*11).style.opacity = 0.7;
}
});