活动 handling/Capturing
Event handling/Capturing
我想在 Javascript 中附加一个事件侦听器到 "ul" html 标签,这样当我点击任何 "li" 时,警报将显示值对应的 "li":
<ul>
<li>A<li/>
<li>B<li/>
<li>C<li/>
</ul>
如果点击 A,它应该提醒 A,B 和 C 也一样
var list = document.querySelector("#list");
list.addEventListener("click", function(ev) {
if (ev.target !== list) console.log(ev.target.textContent);
// console is easier to test than alert(ev.target.textContent);
});
<ul id="list">
<li>A</li>
<li>B</li>
<li>C</li>
</ul>
document.querySelectorAll('li')
.forEach(item =>
item.addEventListener('click',
() => alert('Item clicked')
)
);
li {
cursor: pointer;
}
li:hover {
background: lightgrey;
}
<ul>
<li>Item 1</li>
<li>Item 2</li>
</ul>
您必须循环遍历列表中的所有 <li/>
个元素并向其附加 eventListener。
查看代码示例以了解其工作原理。
获取所有 li nodes
并在每个 nodes
上添加 click events
.
var lis = document.getElementById("div").getElementsByTagName("li")
for(var i=0;i<lis.length;i++){
lis[i].addEventListener('click', function(e){
alert(e.target.textContent);
})
}
// As if you want to have single click event on ul itself
document.getElementById("ul").addEventListener('click', function(e){
alert(e.target.textContent);
})
ul li {
background: #cce5ff;
margin: 5px;
cursor:pointer;
}
<div id="div">
<ul >
<li>A</li>
<li>B</li>
<li>C</li>
</ul>
</div>
<p> As if you want to have single click event on ul itself</p>
<hr>
<ul id="ul">
<li>X</li>
<li>Y</li>
<li>Z</li>
</ul>
您可以 select ul by getElementById
并将其绑定到事件 onclick
。检查
JSFiddle
我想在 Javascript 中附加一个事件侦听器到 "ul" html 标签,这样当我点击任何 "li" 时,警报将显示值对应的 "li":
<ul>
<li>A<li/>
<li>B<li/>
<li>C<li/>
</ul>
如果点击 A,它应该提醒 A,B 和 C 也一样
var list = document.querySelector("#list");
list.addEventListener("click", function(ev) {
if (ev.target !== list) console.log(ev.target.textContent);
// console is easier to test than alert(ev.target.textContent);
});
<ul id="list">
<li>A</li>
<li>B</li>
<li>C</li>
</ul>
document.querySelectorAll('li')
.forEach(item =>
item.addEventListener('click',
() => alert('Item clicked')
)
);
li {
cursor: pointer;
}
li:hover {
background: lightgrey;
}
<ul>
<li>Item 1</li>
<li>Item 2</li>
</ul>
您必须循环遍历列表中的所有 <li/>
个元素并向其附加 eventListener。
查看代码示例以了解其工作原理。
获取所有 li nodes
并在每个 nodes
上添加 click events
.
var lis = document.getElementById("div").getElementsByTagName("li")
for(var i=0;i<lis.length;i++){
lis[i].addEventListener('click', function(e){
alert(e.target.textContent);
})
}
// As if you want to have single click event on ul itself
document.getElementById("ul").addEventListener('click', function(e){
alert(e.target.textContent);
})
ul li {
background: #cce5ff;
margin: 5px;
cursor:pointer;
}
<div id="div">
<ul >
<li>A</li>
<li>B</li>
<li>C</li>
</ul>
</div>
<p> As if you want to have single click event on ul itself</p>
<hr>
<ul id="ul">
<li>X</li>
<li>Y</li>
<li>Z</li>
</ul>
您可以 select ul by getElementById
并将其绑定到事件 onclick
。检查
JSFiddle