我不相信有任何原生方式可以看到元素如何得到它的焦点(如果我错了,请纠正我的错误!)。
但是,您可以在单击鼠标时执行存储操作,在使用键盘时存储,然后根据上一个活动状态做出反应。
var inputState = null;
document.addEventListener("click", handleClick);
document.addEventListener("keyup", handleKey);
function handleClick () {
inputState = "mouse";
}
function handleKey () {
inputState = "keyboard";
}
function foo() {
if ( inputState === "mouse" ) {
// mouse code
} else if ( inputState === "keyboard" ) {
// keyboard code
} else {
// Function was called directly
}
// Reset input State after processing
inputState = null
}
这可能需要一些调整,但我希望你能用它来找到正确的答案。
编辑:
我的回答是一个普通的JS解决方案,如果您有权访问jQuery,您可能需要调查click和keyup事件处理程序。