我正在尝试创建一个onblur事件,任何时候只要有人点击页面上的任何地方,它就会专注于该元素,除非它是一个特定元素,然后它将重新聚焦到该特定元素。 我可能会离开,但这是我尝试过的,无论如何它都会专注于Barcode元素。
function stayOnBarcode() {
var QTY = document.getElementById("QTY");
var Barcode = document.getElementById("Barcode");
if (Barcode.value === "") {
if (QTY.focus() === true) {
QTY.focus();
}
else if (document.hasFocus() === true) {
Barcode.focus();
}
}
else {
Barcode.focus();
}
}
答案 0 :(得分:2)
这样的事情怎么样:
$(document).on("mousedown", function(e) {
clicked = $(e.target)
})
$("input").on("blur", function() {
if (!clicked.is("#QTY") && !clicked.is("#Barcode")) {
$(this).focus()
}
})
它将最近点击的元素存储在变量clicked
中,然后在blur
事件中检查last_clicked
是否为#QTY
或#Barcode
以外的其他内容。如果是这样,它会重新聚焦被模糊的input
。
您可能需要调整它以符合您的确切条件,或者随意添加问题的细节。
看看这个工作小提琴:https://jsfiddle.net/oez0488h/63/