【发布时间】:2011-06-20 04:20:44
【问题描述】:
http://jqueryui.com/demos/autocomplete/#event-change
听起来change 事件应该在您选择一个项目后触发,但它似乎会触发 onblur,但前提是输入已更改。
selectOTOH 触发太早,它在输入文本更新之前触发。
我想在用户选择项目后或在用户键入内容并切换焦点后立即对输入执行某些操作(如通常的更改事件)。
我该怎么做?
【问题讨论】:
-
文档声明新选择的值由 ui.item 引用。你能以这种方式获得价值吗?更改项也总是在关闭事件之后触发,这就是您提到的直到 onblur 事件才触发。
-
@Ben:close 事件在 onblur 之前触发。是的,我可以利用
ui.item,但是我必须处理两种情况,即用户键入一些内容会导致更改,以及用户选择一个项目的情况不同(必须以不同的方式访问数据)。除非我们作弊......像我一样。但既然你提到了它,数据似乎在 触发关闭事件之前得到更新,所以我也可以在那里触发更改。 -
有趣的是它说“当列表被隐藏时 - 不必与更改一起发生。”因为这两个事件不会同时触发,即使它们都发生了。
-
我意识到 close 事件在 onblur 之前触发,我想也许你认为它们是相关的,因为你点击离开这显然会导致两个事件被触发。下面的解决方案很好,很高兴你想通了。
-
@Ben:嗯,是的,我确实认为他们会一个接一个地开火。即,当您单击一个项目时,我希望触发关闭事件,然后立即触发更改事件。但事实并非如此。 close 事件触发,然后 change 事件在您单击其他位置之前不会触发。那好吧。我喜欢活动,但我讨厌你真正想要的活动有空洞。
标签: jquery jquery-ui jquery-ui-autocomplete