第二次聚焦时不会触发自动完成功能

时间:2012-01-04 10:29:39

标签: jquery jquery-ui autocomplete focus

我正在尝试触发焦点或点击事件的自动完成列表。此解决方案有所帮助,但是当我第二次单击输入字段时,没有任何反应:列表不会出现。

$('input').autocomplete({
  source: ["1","2"],
  minLength: 0 
}).focus(function(){
  $(this).trigger('keydown.autocomplete');
});

我尝试了这个变种 - 没有好的

$(this).keydown();

这条线在同一个地方运作良好:

$(this).attr('value,new Date());

P.S。 jQuery UI 1.8.16,jQuery v1.7.1

3 个答案:

答案 0 :(得分:2)

您可以使用

$('input').autocomplete({
  source: ["1","2"],
  minLength: 0 
}).focus(function(){
  $(this).autocomplete('search');
});

答案 1 :(得分:0)

尝试:

$('input').autocomplete({
  source: ["1","2"],
  focus: function(){ $(this).autocomplete('search'); },
  minLength: 0 
});

答案 2 :(得分:0)

由于该字段已经聚焦,因此不会调用焦点事件,请尝试:

$('input').autocomplete({
    source: ["1","2"],
    minLength: 0 
}).focus(function(){
    $(this).trigger('keydown.autocomplete');
}).click(function(){
    $(this).trigger('keydown.autocomplete');
});

这复制了一些代码,除了你所拥有的简单单行之外,这可能会变得更加混乱;如果它确实你可以通过拉出这样的功能来改进它:

$('input').autocomplete({
    source: ["1","2"],
    minLength: 0 
}).focus(myfocus).click(myfocus);
function myfocus (e){
    $(this).trigger('keydown.autocomplete');              
}