javascript - HTML拖放,dragover事件返回子元素而不是父元素
问题描述
在提供的示例中,当我将任何元素拖到“Category1”上时,console.log 会输出子元素“DIV”而不是父元素“LI”。
任何解决方案将不胜感激。
document.addEventListener('dragover', function (event) {
event.stopPropagation();
event.preventDefault();
console.log(event.target.tagName);
}, true);
<ul>
<li draggable='true'><div draggable="false">Category 1</div>
<ul>
<li draggable='true'> * Item 1 </li>
<li draggable='true'> * Item 2 </li>
<li draggable='true'> * item 3 </li>
</ul>
<li draggable='true'><div draggable="false">Category 2</div>
<ul>
<li draggable='true'> * Item 1 </li>
<li draggable='true'> * Item 2</li>
</ul>
</li>
</li>
</ul>
解决方案
正在考虑使用 FOR 循环来通过 DOM,直到找到 LI。
function getfirstLI(el)
{
for (i = 0; i < 10; i++) {
if (el.tagName == "LI") return el;
if (el.tagName == "UL") return null;
if (el.tagName == "body") return null;
el = el.parentNode;
}
推荐阅读
- c# - 如何在 StackPanel 中绑定 UserControl?
- javascript - 悬停在桌面上时启动抽奖动画
- azure - 无法在 Azure DevOps 中创建新的 Azure 服务连接,当在租户上启用 MFA 时,我是来宾
- python - Snakemake:使规则等待先前规则的完全执行
- wpf - 使用自定义 WindowChrome 在 Teams 中共享窗口会闪烁原始窗口镶边
- jenkins - 如何在 Jenkins 作业之间共享参数?
- winapi - 如何使用 Directx9 将凹凸贴图纹理应用于网格?
- fullcalendar - Fullcalendar 不显示事件列表
- python - KivyMD Xcode 构建错误 - ImportError: 动态模块未定义模块导出函数 (PyInit__imaging)
- mysql - MySQL Workbench SSL 连接错误:需要 SSL 但服务器不支持