Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个网页,当我点击一个链接时,它会打开一个“查看此项目”页面。在这第二页上,我可以单击 esc 键返回上一页。
在第二页上,我有一个按钮,它创建了一个用于选择照片的弹出表单。在这个弹出表单上,我可以单击 esc 返回主第二页。
问题是,当我在弹出表单中单击 esc 时,它会关闭弹出表单,然后返回到第一页。即就像我点击了两次 esc 一样。
我知道事件传播并尝试调用 e.preventDefault(); 在这部分代码之前,但它似乎不起作用。
我在这里缺少什么吗?
您正在寻找的是对象stopPropagation()上的方法Event。这可以在 jquery 事件处理程序中调用,但它只是普通的 DOM/(纯 js)。所以在 jQuery 中:
stopPropagation()
Event
$('#modal').on('keyup', function(e) { if (e.which === 27) { e.stopPropagation(); // close the window } });
这将防止事件冒泡到您的其他处理程序当前返回同一事件的页面。