JQuery:点击某些内容时不要专注

时间:2014-03-21 18:22:16

标签: javascript jquery

我有一个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出现了。我不希望选项栏在点击时消失,否则没有任何"选项"可以选择。

2 个答案:

答案 0 :(得分:0)

一半烘焙解决方案是简单地监控点击/模糊的时间并将两者关联起来:

http://jsfiddle.net/ztA5F/

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; 
});