2011-12-31 68 views
2

我有一个div,tabindex属性设置为'-1',因此它可以获得鼠标点击的焦点。对焦点DIV的点击操作

<div tabindex='-1'></div> 

.div:focus{//some style} 

我想用jquery做什么,当用户点击的div,但只有当它被选中(第二次点击后)。

$('div').click(function(){ 
if($(this).is(':focus')){ 
//do something 
} 
}); 

但它不起作用,立即触发行动。

编辑:包括代码。

+0

请包括您与 – 2011-12-31 18:08:10

+0

您的代码[作品试图代码对我来说](http://jsfiddle.net/davidThomas/VygWj/),在Chromium 14/Ubuntu 11.04中...... – 2011-12-31 18:24:42

+0

大卫,这里的问题是警报显示,只要你点击div在同一时间它越来越关注,而不是之后。 – olanod 2011-12-31 18:57:42

回答

2

我会检查的第2点击一个标志,看到我answer这里

  1. 我用一个标志isClicked来确定它是第一次点击还是第二次。如果是第一次点击,则将该标志设置为true并返回(即不做任何事)。下一次,该标志被检查为真,这意味着它是第二次点击,并添加下面的代码来做你想做的。

    var isClicked = false; 
    
    $('div#myTest').click(function(){ 
    
    //do nothing on 1st click 
    if (isClicked == false) { 
        alert('Clicked 1st time');  
        isClicked = true; 
        return; 
    } 
    
    //do whatever u want on second click  
    alert('Clicked 2nd time');  
    
    }); 
    
  2. 复位标志被点击的股利之外时,下面的代码,这是否......

    // to check it is clicked outside div 
    $(document).click(function(e){ 
        if($(e.target).is('#myTest'))return;  
    
        //reset to 
        isClicked = false; 
    
    }); 
    
2

从我读过的内容中,也许你可以在关注DIV后调用“click”动作。第一次点击重点它,第二次点击触发下一个块。

**编辑**研究后,您不能在DIV上使用焦点处理程序。我在想什么!

*$('.double-click').focus(function(){ 
    alert("I'm now in focus"); 
    $(this).click(function(){ 
      alert("I'm now double clicked."); 
    }); 
});* 

**这是未经过测试的代码。

我也看了看周围jQuery的API,并注意到DBLCLICK()函数,你可以在这里看到... http://api.jquery.com/dblclick/

+0

划痕。事实证明,你不能“专注”DIV的。尝试使用dblclick()函数。 – wwwroth 2011-12-31 18:25:45