仅在不考虑其填充的情况下在元素上触发 'click' 事件
Triggering a 'click' event on the element ONLY without taking its padding into account
目标是仅当用户直接点击不包括其填充的元素时才在元素上触发 'click' 事件。
因此,假设我们有这样的东西:
<ul>
<li>First element</li>
<li>Second element</li>
<ul>
假设这些列表元素在同一行上对齐。因此,可能会出现用户单击位于这两个元素中间某处的 'space' 的情况,甚至更接近第二个元素。如果在这种情况下没有触发任何事件,而不是这两种情况中的任何一个,它会更直观。
在您的 HTML 中将 <li>
内容包装在 <span>
:
<ul>
<li><span>First element</span></li>
<li><span>Second element</span></li>
<ul>
在您的 CSS 中设置 <li>
的填充。例如:
li {
padding: 20px;
}
并且在您的 JS 中为 <span>
(不是 <li>
)设置点击事件:
let firstElement = document.querySelector('li span');
firstElement.addEventListener('click', clickHandler);
目标是仅当用户直接点击不包括其填充的元素时才在元素上触发 'click' 事件。 因此,假设我们有这样的东西:
<ul>
<li>First element</li>
<li>Second element</li>
<ul>
假设这些列表元素在同一行上对齐。因此,可能会出现用户单击位于这两个元素中间某处的 'space' 的情况,甚至更接近第二个元素。如果在这种情况下没有触发任何事件,而不是这两种情况中的任何一个,它会更直观。
在您的 HTML 中将 <li>
内容包装在 <span>
:
<ul>
<li><span>First element</span></li>
<li><span>Second element</span></li>
<ul>
在您的 CSS 中设置 <li>
的填充。例如:
li {
padding: 20px;
}
并且在您的 JS 中为 <span>
(不是 <li>
)设置点击事件:
let firstElement = document.querySelector('li span');
firstElement.addEventListener('click', clickHandler);