单击Focused DIV上的操作

时间:2011-12-31 18:06:34

标签: javascript jquery

我有一个div,其tabindex属性设置为'-1',因此它可以专注于鼠标点击。

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

.div:focus{//some style}

当用户点击div时,我想用Jquery做一些事情,但只有在选中它时(第二次点击后)。

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

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

编辑:包含代码。

2 个答案:

答案 0 :(得分:2)

根据我的阅读,也许你可以在关注DIV后调用“点击”动作。首先点击它,第二次点击会触发下一个块。

**编辑**经过研究,您无法在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/

答案 1 :(得分:2)

我会用标记检查第二次点击,在这里看 answer

  1. 我使用了一个标记isClicked来确定它是第一次点击还是第二次点击。如果是第一次单击,将标志设置为true并返回((即)不执行任何操作)。下一次,检查标志是否为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. 在div外部单击时重置标志,以下代码执行该操作...

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