【发布时间】:2019-01-21 13:10:55
【问题描述】:
我正在创建一个由单个输入字段组成的剔除组件,人们可以在其中搜索用户。
我正在使用click 事件从列表中获取选定的用户,并且我想做一些事情,比如隐藏列表,如果输入失去焦点(也就是他们点击了其他地方)。
问题是,当我单击列表中的一个元素时,hasFocus 事件会触发,并且会以某种方式阻止click 事件触发。
我不明白为什么,因为他们是兄弟姐妹,而不是父子事件。
我已经设法通过在订阅函数中向hasFocus 添加超时来使其工作,但我认为这不是正确的方法。
这是唯一的方法吗?让你的代码工作这样的超时是不好的做法,对吧?
这是一个有效的小提琴:http://jsfiddle.net/57kxyud9/
- 事实上,只有
click事件被启用并且工作正常。 - 您可以启用
hasFocus事件订阅,您可能会注意到它会停止保存用户信息。 - 然后您可以在
hasFocus.subscribe中启用超时,程序再次运行。
我还应该在这篇文章中嵌入代码 sn-ps 吗?
即使input_hasFocus.subscribe 处于活动状态,我也希望能够在单击用户时保存用户。
【问题讨论】:
标签: knockout.js