我知道我可以抓住个人身份证的元素。
无论如何,我可以将一个监听器附加到父div并传递所单击的单个跨区的ID?
access-denied-handler
JS
<div id = "divId">
<span id="one"></span>
<span id="two"> </span>
</div>
答案 0 :(得分:3)
您可以使用event
对象并访问其target
属性
document.getElementById("divId").addEventListener("click", someFunction);
function someFunction(event) {
console.log(event.target.id);
}
&#13;
<div id="divId">
<span id="one">one</span>
<span id="two"> two</span>
</div>
&#13;
答案 1 :(得分:1)
如果用户单击的元素是该元素的子节点,则用户要测试的e.target
将是另一个节点。如今,检查此内容的明智方法是在文档级别进行侦听并迭代路径(或使用一些委托库,其中有很多委托库):
在文档中添加一个事件侦听器:
const isOnId = (path,id) => path.some(element => element.id === id);
document.addEventListener('click',function(e) {
if(isOnId(e.path,'two')) {
//you clicked on or in element with an id two
} else {
//you clicked on something else
}
});