如何解决在 iframe 中的锚点事件委托中, preventDefault() 不足?
我希望这对你们所有的网络开发专家来说可能是一个唾手可得的成果:
我通过将鼠标单击处理程序附加到锚元素无序列表的父元素(经典导航设计)来实现事件委托。我正在处理的文档存在于 iFrame 中。处理程序如下所示:
const handleMouseClick = function(evt) {
if (evt.target.matches('a')) {
evt.preventDefault();
evt.stopPropagation();
console.log('Clicked a tag....',event.target.href);
}
};
只是为了提供完整的上下文,我点击了一个没有指针事件的覆盖元素 - 所以它应该不会影响点击处理。
无论如何,当单击其中一个锚标记时,我想阻止 iframe 加载锚中引用的 URL。前面提到的单击处理程序附加到父级,可以很好地接收单击事件,我原以为调用 event.preventDefault() 可以解决问题。但是,我必须同时调用 event.preventDefault() 和 event.stopPropagation() 阻止 iframe 加载链接。如果我删除其中任何一个,iframe 会加载链接吗?
在查看有关 preventDefault 和 stopPropagation 的文献时,我对此的第一个想法是,这是出乎意料的,但我可能会遗漏一些内容。我错过了什么 - 为什么在这种情况下 event.preventDefault() 不够用?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。