gpt4 book ai didi

jQuery:ESC 队列

转载 作者:行者123 更新时间:2023-12-01 01:26:39 26 4
gpt4 key购买 nike

我正在开发一个巨大的应用程序,它使用一些子菜单、模式窗口、提示等。

现在,我想知道在此类应用程序中处理 Esc 和单击外部事件的正确方法。

$(document).keyup(function(e) {
if (e.keyCode == 27) { ... }
});

我用它来处理 Esc 按键...如果只有一个事件要触发,这会很简单...

但请考虑一下:1.点击打开模态窗口2. 在模态窗口内单击打开下拉菜单3. 将鼠标悬停在菜单项上会打开工具提示

现在,当按 Esc 时,首先工具提示应关闭,再次按菜单应关闭,最后模态窗口关闭

处理这个问题的正确方法是什么?

类似的情况也适用于点击外部...

如果您在模态窗口外部单击,整个模态窗口应该关闭(包括菜单和工具提示)单击模式窗口但在菜单之外,应关闭菜单和工具提示

最佳答案

对于每个打开的窗口、对话框等,它都会添加到页面级(全局)堆栈中。

document.keyup 事件,当收到 ESC 按下时,会从堆栈中弹出最后一项,然后将其关闭。

理想情况下,这可以细化为反转控制,因此 document.keyup 只是将事件传递给堆栈上的最后一项,并处理自身关闭以及从堆栈中删除自身。

您还必须跟踪并从堆栈中删除以其他方式关闭的项目,这就是反转控制的好处。

关于jQuery:ESC 队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12305932/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com