在模糊之前选择先前聚焦的输入

时间:2013-02-17 01:09:05

标签: javascript jquery

我有我的输入字段的自动建议菜单,因为有多个字段我需要选择在点击li之前处于焦点的字段并模糊输入,因此它知道要选择哪个输入。有没有办法让最后一个输入字段在模糊之前聚焦?感谢

function fill(thisValue) {
 if(thisValue === undefined){
   $('#suggestions').fadeOut();
    } else {
    $("input *//input in focus before blur//* .val(thisValue);
    setTimeout("$('#suggestions').fadeOut();", 600);
    $('.email').addClass('load');

     }
  }

1 个答案:

答案 0 :(得分:1)

是的,但是你需要在点击LI时存储最后一个聚焦元素,或者在点击它之前更准确,blur为时已晚。

var lastFocused = null;

$('li').on({
    mousedown: function() {
        lastFocused = document.activeElement; //saves focused element
    },
    click: function() {
        //do whatever you do on click
    }
});

function fill(thisValue) {
   if(thisValue == undefined && lastFocused) {
       $('#suggestions').fadeOut();
   } else {
       lastFocused.value = thisValue;
       setTimeout(function() {
          $('#suggestions').fadeOut();
       }, 600);
       $('.email').addClass('load');
  }
}

这是一个快速DEMONSTRATION,表明它有效!

如果你可以使用data()或类似的东西来避免全局变量,那就更好了,只是为了演示它是如何完成的。