在JSONP请求之后立即执行myFunction

时间:2012-01-31 09:33:14

标签: jquery html autocomplete jsonp

我有一个脚本可以显示Google建议:JsFiddle

我想用ui自动完成渲染的第一个li项做一个函数,所以我这样做了:

$("input#term").keyup(function() {
    DoMyFunction($('.ui-autocomplete li:first-child a').text(), true);
}); 

问题是,在密钥组之间有一段时间--->请求---> uml自动完成的xml缓存和html渲染。这意味着当没有html列表时我的函数(DoMyFunction)被触发,因此它不起作用。所以我的问题是:如何在缓存和处理reqeust之后立即执行我的功能。设置计时器不会起作用,因为要考虑很多变量(ea用户带宽)。

1 个答案:

答案 0 :(得分:1)

根据jQuery UI docs,在建议菜单打开时会触发open事件

你必须做这样的事情:

$("#term").autocomplete({

  source: function( request, response ) {
    // ajax function
  },
    select: function(e, ui){
        //
    }
   open : function(){
        //here you are sure the suggestion menu is opened
        DoMyFunction($('.ui-autocomplete li:first-child a').text(), true);
   }
 });