我在我的一个项目中使用jQuery Token Input插件和我的自定义编写插件之一。
我的插件基本上将一个锚标记添加到它被初始化的元素上,并在单击锚链接时显示一个绑定到jquery token input
插件的文本输入元素。
在FocusOut
事件中我想隐藏文本输入(在这种情况下,它将ul
由 jquery 令牌输入代替文本输入初始化)。
到目前为止一切正常。
但是,如果我按 alt 键,主菜单会ul
按预期隐藏,但下拉菜单ul
仍然可见。
要查看我面临的问题,您还可以查看此JSFiddle。抱歉,关于 CSS 部分,我确实包含了 CSS 文件,但由于某种原因它不能按预期工作。
现在,在小提琴中,如果您单击+ Add
按钮输入并出现下拉菜单(带有说明),然后如果您单击预览窗口中的其他任何位置,它就会消失,这是预期的行为。
但是,如果您单击添加按钮并且一旦出现输入和下拉菜单,然后如果您按下 alt 键(启动焦点事件),输入就会消失,但下拉菜单仍然显示。这是为什么 ?
造成这种情况的原因可能是什么?
更新:
如果我让它有点复杂,我很抱歉。以下是预期行为与问题之间的比较。
案例 1:(通过单击正文中的某处触发的 focusout 事件)。
在这种情况下,用户单击 +添加按钮 > 出现一个带有打开下拉列表的输入框 > 用户通过单击正文中的其他位置来集中注意力 > 输入和下拉列表消失。
这是预期的行为。
案例2:(按键触发的focusout事件alt
)。
在这种情况下,用户单击+添加按钮 > 出现一个带有打开下拉列表的输入框 > 用户按下alt
触发焦点事件的键 > 输入消失但下拉列表没有。
在这种情况下,我需要确保下拉菜单也消失。
注意:由于某种原因,Dropdown CSS 在小提琴中搞砸了。说的文字type somethig
是下拉元素。