Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在模糊之前选择先前聚焦的输入_Javascript_Jquery - Fatal编程技术网

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

Javascript 在模糊之前选择先前聚焦的输入,javascript,jquery,Javascript,Jquery,我有一个带有输入字段的自动建议菜单,由于有多个字段,我需要选择在单击li并模糊输入之前处于焦点的字段,因此它知道要选择哪个输入。有没有办法在模糊之前聚焦最后一个输入字段?谢谢 function fill(thisValue) { if(thisValue === undefined){ $('#suggestions').fadeOut(); } else { $("input *//input in focus before blur//* .val(thisValue

我有一个带有输入字段的自动建议菜单,由于有多个字段,我需要选择在单击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');

     }
  }

是的,有,但是您需要在单击LI时存储最后一个聚焦的元素,或者更准确地说,在单击之前存储,并且
模糊
为时已晚

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');
  }
}
这里有一个快速的例子来证明它是有效的


如果您可以通过使用
data()
或类似的方法来避免全局,那就更好了,只是为了演示它是如何完成的。

是的,但是您需要在单击LI时存储最后一个聚焦的元素,或者在单击之前更准确地存储,而且
模糊
为时已晚

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');
  }
}
这里有一个快速的例子来证明它是有效的


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

这太棒了。也很好,解释得很好。非常感谢:)不客气,在创建自定义自动建议列表时,您在这方面做了很多努力,这是我能找到的做这类事情的最佳方式。这太棒了。也很好,解释得很好。非常感谢:)不客气,在创建自定义自动建议列表时,您在这方面做了很多工作,这是我能找到的最好的方法。