Jquery 如何指定事件的触发顺序?
我有一个AutoCompleteXtender对象,当您键入两个文本框时,它会显示两个文本框的结果。按enter键或tab键时,它应在AutoCompleteXtender中选择该项,然后在文本框中触发keydown事件以执行一些ajax调用 问题是,有时文本框上的keydown事件在AutoCompleteXtender之前触发,这意味着在进行ajaxcall时文本框中的文本尚未更新 是否需要指定触发这些事件的顺序 编辑: 感谢所有的答案,但是一旦我发现OnClientItemSelected属性,可用的解决方案就变得非常过时了。我可以直接指向我想要触发的js函数Jquery 如何指定事件的触发顺序?,jquery,javascript-events,Jquery,Javascript Events,我有一个AutoCompleteXtender对象,当您键入两个文本框时,它会显示两个文本框的结果。按enter键或tab键时,它应在AutoCompleteXtender中选择该项,然后在文本框中触发keydown事件以执行一些ajax调用 问题是,有时文本框上的keydown事件在AutoCompleteXtender之前触发,这意味着在进行ajaxcall时文本框中的文本尚未更新 是否需要指定触发这些事件的顺序 编辑: 感谢所有的答案,但是一旦我发现OnClientItemSelected
我没有回答自己的问题,因为问题是关于事件顺序的。您可以删除Keydown事件处理程序,然后在触发AutoCompleteXtender事件后重新分配它。我假设autocomplete请求是异步运行的,因此,您遇到了这样一个问题:keydown可能总是以相同的顺序运行,只是自动完成请求没有完成 您可以向文本框添加自定义事件,如
$("txtBox").bind("afterAutoComplete", existingKeyDownHandler);
然后在自动完成请求函数中简单地触发它
$("textBox").autocomplete(...).result(function(event, item) {
// do other stuff if required, or simply just trigger the event
$(this).trigger("afterAutoComplete");
});
嗯
亚历克斯