防止键盘关闭时出现模糊事件
Prevent blur event on keyboard close
这适用于移动网络应用程序,而非本机应用程序。
我有一个在模糊事件时关闭的自动完成下拉菜单。但我想防止这种情况在用户关闭移动键盘时发生(即自动完成下拉菜单应保持可见)。有没有办法区分键盘关闭和其他类型的模糊事件引起的模糊事件?我可以防止因关闭移动键盘而导致的模糊事件吗?
好的,首先我会建议您查看您的库的文档,因为它们可能会在 API 中提供一些内容,尽管我不知道什么。这就是 Web 应用程序的缺点:您无法访问本机功能。
如果您仍然真的想这样做,这里有一个可能的解决方案。这很丑陋,但它可能会起作用。
Container on tap function (event)
If !autocomplete return // if you cant see the popup do nothing and blur normally
If (event.target != inputID) AND (event.target != autocID)
CloseAutocomplete()`
本质上,不是在模糊时关闭自动完成,而是在用户点击您的父容器时关闭它,而不是在输入本身或自动完成上。根据它的工作方式,您可以扩展它以检查屏幕上的任何点击。
我看到你被标记了 iOS...你可以使用 UIKeyboardWillHideNotification 观察键盘事件。 [https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIWindow_Class/index.html#//apple_ref/c/data/UIKeyboardWillHideNotification]不过,您可能必须执行异步延迟才能使用 onblur 捕获该事件。
如果您真的想阻止所有 "other kinds of blur events" 您可以让您的下拉菜单关闭特定事件(而不是模糊)。例如:单击另一个字段时,导航 and/or 在该下拉控件旁边添加一个 'x' 关闭按钮。
在模糊事件侦听器中,测试 event.relatedTarget === null。如果焦点已移动到不同的元素,event.relatedTarget 将引用该元素,但如果没有焦点(如模糊的原因是键盘关闭时的情况),event.relatedTarget 将为 null .
这适用于移动网络应用程序,而非本机应用程序。
我有一个在模糊事件时关闭的自动完成下拉菜单。但我想防止这种情况在用户关闭移动键盘时发生(即自动完成下拉菜单应保持可见)。有没有办法区分键盘关闭和其他类型的模糊事件引起的模糊事件?我可以防止因关闭移动键盘而导致的模糊事件吗?
好的,首先我会建议您查看您的库的文档,因为它们可能会在 API 中提供一些内容,尽管我不知道什么。这就是 Web 应用程序的缺点:您无法访问本机功能。
如果您仍然真的想这样做,这里有一个可能的解决方案。这很丑陋,但它可能会起作用。
Container on tap function (event)
If !autocomplete return // if you cant see the popup do nothing and blur normally
If (event.target != inputID) AND (event.target != autocID)
CloseAutocomplete()`
本质上,不是在模糊时关闭自动完成,而是在用户点击您的父容器时关闭它,而不是在输入本身或自动完成上。根据它的工作方式,您可以扩展它以检查屏幕上的任何点击。
我看到你被标记了 iOS...你可以使用 UIKeyboardWillHideNotification 观察键盘事件。 [https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIWindow_Class/index.html#//apple_ref/c/data/UIKeyboardWillHideNotification]不过,您可能必须执行异步延迟才能使用 onblur 捕获该事件。
如果您真的想阻止所有 "other kinds of blur events" 您可以让您的下拉菜单关闭特定事件(而不是模糊)。例如:单击另一个字段时,导航 and/or 在该下拉控件旁边添加一个 'x' 关闭按钮。
在模糊事件侦听器中,测试 event.relatedTarget === null。如果焦点已移动到不同的元素,event.relatedTarget 将引用该元素,但如果没有焦点(如模糊的原因是键盘关闭时的情况),event.relatedTarget 将为 null .