2 Stimmen

Klicken Sie auf Aktion auf Focused DIV

Ich habe ein div mit tabindex-Attribut auf '-1' gesetzt, so dass es Fokus auf Mausklick gewinnen kann.

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

.div:focus{//some style}

Ich möchte etwas mit Jquery zu tun, wenn der Benutzer das div klickt, aber nur, wenn es ausgewählt ist (nach dem zweiten Klick).

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

Aber es funktioniert nicht, die Aktion wird sofort ausgelöst.

EDIT: Code enthalten.

2voto

wwwroth Punkte 402

Nach dem, was ich gelesen habe, können Sie vielleicht die Aktion "Klick" aufrufen, sobald Sie sich auf das DIV konzentriert haben. Der erste Klick fokussiert es, der zweite Klick löst den nächsten Block aus.

** EDIT ** Nach der Recherche können Sie den Fokus-Handler nicht auf dem DIV verwenden. Was habe ich mir nur dabei gedacht!

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

** Dies ist ein ungetesteter Code.

Ich habe mich auch in der API von jQuery umgesehen und eine dblclick()-Funktion bemerkt, die Sie hier sehen können... http://api.jquery.com/dblclick/

2voto

Selvakumar Arumugam Punkte 77945

Ich würde den 2. Klick mit einer Flagge überprüfen, siehe meine Antwort aquí

  1. Ich habe ein Flag isClicked verwendet, um festzustellen, ob es der 1. oder 2. Wenn es der 1. Klick ist, wird das Flag auf true gesetzt und zurückgegeben (d.h. es wird nichts getan). Beim nächsten Mal wird das Flag auf true geprüft, was bedeutet, dass es der 2. Klick ist, und der folgende Code tut, was Sie wollen.

    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. Setzen Sie die Flagge zurück, wenn sie außerhalb des Divs angeklickt wird, der folgende Code tut das...

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X