我有三个搜索类别(参见第一张图片)。用户选择一个,我会在类别的空间中显示与该主题对应的搜索输入(参见第二张图片)。我会自动将注意力集中在 jQuery 的输入上,以便用户可以轻松地开始输入。如果用户改变主意并模糊输入,我会将其隐藏并再次显示三个类别。
如果用户单击输入进行搜索,这一切都非常有效,但我也希望允许他们能够单击搜索输入字段旁边的“执行”按钮。问题是,如果他们尝试单击“执行”按钮,则输入会被模糊,然后隐藏,并且提交单击永远不会被触发(我无法在单击此元素时取消绑定模糊事件,因为它永远不会被触发 - 首先会触发模糊)
除非使用 jQuery 或 JavaScript 单击此“go”元素?
setTimeout()
之后隐藏模糊的输入,这使表单提交有机会在隐藏之前发送。
您可以在模糊事件上使用
属性来检查您是否单击了特定元素来触发模糊。 这是一个普通的 JS 示例:
const input = document.getElementById("you-input-id-here");
const button = document.getElementById("your-button-id-here");
function handleBlurEvent(event) {
if (event.relativeTarget === button) {
// You clicked the button.
}
else {
// You clicked something else.
// Hide search input, etc.
}
}
input.addEventListener("blur", handleBlurEvent);