0

我在我的一个项目中使用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是下拉元素。

4

1 回答 1

0

添加快捷方式库并添加以下代码。有用

shortcut.add("Alt", function() {
   $('.token-input-dropdown').hide()
        });

演示:http: //jsfiddle.net/abdennour/dHSWu/5/

同样,请远离标签使用margin以避免事件重叠

a.addInput{
    margin:2px;
}
div.token-input-dropdown{
     margin:2px;
}
于 2013-05-18T08:54:45.517 回答