我有一个div,#someDiv,我可以在焦点上执行一些jQuery代码,然后集中注意力。但是我想要实现一个动作,如果在关注div#1时点击了某个其他div,那么焦点仍然在div上:
$(document).on("focus", "#someDiv", function() {
// Some code here to execute
}).on("focusout", "#someDiv", function() {
if (#someDiv2 was clicked on) { // DON'T focus out from #someDiv }
});
...但是问题是jQuery无法区分焦点期间的点击。我怎样才能达到这个效果?
编辑:基本上我想要实现的想法是一个模拟的网络应用程序,你可以在它有焦点时自定义某种div,并在此基础上,选择"选项" div出现了。我不希望选项栏在点击时消失,否则没有任何"选项"可以选择。
答案 0 :(得分:0)
一半烘焙解决方案是简单地监控点击/模糊的时间并将两者关联起来:
var lastBlur = new Date().getTime();
$("html").on("click", function() {
var now = new Date().getTime();
console.log(lastBlur);
console.log(now);
if (lastBlur >= (new Date().getTime() - 500))
$("#input").focus();
console.log("click");
});
$("#input").on("blur", function() {
lastBlur = new Date().getTime();
console.log("blur");
});
答案 1 :(得分:0)
我不确定我完全明白你所追求的是什么,但也许这会有所帮助:
var lastID;
$(document).on('click focus', function (e) {
var id = $(e.target).attr('id');
if (id === 'someDiv2' && lastID === 'someDiv') {
$('#someDiv').trigger('focus');
}
lastID = id;
});