我有一个带有输入字段的自动建议菜单,由于有多个字段,我需要选择在单击 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 时存储最后一个聚焦的元素,或者更准确地说是在单击之前存储,而 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()
或类似的东西来避免全局变量,那就更好了,这只是为了演示它是如何完成的。
关于javascript - 在模糊之前选择先前聚焦的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14917001/