webentwicklung-frage-antwort-db.com.de

Wie mache ich "Wenn ich sonst geklickt habe .."

Ich versuche, jQuery zu verwenden, um so etwas zu tun

if(jQuery('#id').click) {
    //do-some-stuff
} else {
    //run function2
}

Aber ich bin mir nicht sicher, wie ich das mit jQuery machen soll. Jede Hilfe wäre sehr dankbar.

Edit: Ich versuche eine Funktion auszuführen, wenn die #id angeklickt wurde und insbesondere nicht angeklickt wurde. Führen Sie dann die Funktion 2 aus. d. h. ich muss zuerst überprüfen, ob die #id angeklickt wurde, bevor function2 ausgeführt wird.

14
Tom

Sie sollten die Verwendung globaler Variablen vermeiden und die Verwendung von .data() vorziehen.

Also machst du:

jQuery('#id').click(function(){
  $(this).data('clicked', true);
});

Überprüfen Sie anschließend, ob darauf geklickt wurde, und führen Sie eine Aktion aus:

if(jQuery('#id').data('clicked')) {
    //clicked element, do-some-stuff
} else {
    //run function2
}

Hoffe das hilft. Prost

Der Weg, dies zu tun, wäre mit einem Booleschen Wert in einem höheren Bereich:

var hasBeenClicked = false;
jQuery('#id').click(function () {
    hasBeenClicked = true;
});

if (hasBeenClicked) {
    // The link has been clicked.
} else {
    // The link has not been clicked.
}
9
James Long
 var flag = 0;

 $('#target').click(function() {
    flag = 1;
 });

 if (flag == 1)
 {
  alert("Clicked");
 }
 else
 {
   alert("Not clicked");
 }
2
Rajeev

Ein Klick ist ein Ereignis. Sie können ein Element nicht abfragen und fragen, ob es angeklickt wird oder nicht. Wie wäre es damit:

jQuery('#id').click(function () {
   // do some stuff
});

Wenn Sie es wirklich wollten, können Sie einfach eine Schleife erstellen, die alle paar Sekunden mit Ihrem // run function.. Ausgeführt wird.

2
therin

Vielleicht suchen Sie so etwas:

$(document).click(function(e)
   {
       if($(e.srcElement).attr('id')=='id')
       {
           alert('click on #id');
       }
       else
       {
            alert('click on something else'); 
       }
   });

jsfiddle

Sie können mit event.srcElement Einen Zeiger auf das angeklickte Element abrufen.

Sie müssen also nur das ID-Attribut des angeklickten Elements überprüfen.

0
Dr.Molle

wenn Sie x und x so oft drücken, erhalten Sie die Teilung des Kontrollkästchens durch y, was zu einem Kontrollkästchen führt, das eine ungültige Methode darstellt, um dies zu tun. Ich hoffe, Sie sehen sich das an, bevor Sie die .on () - Funktionen verwenden

0
Freezingden

Das ist alles was Sie brauchen: http://api.jquery.com/click/

Ein "sonst" ist in diesem Szenario nicht zutreffend, sonst bedeutet "nicht geklickt". In diesem Fall würden Sie einfach nichts tun.

0
citizen conn

Sie können das Element tatsächlich schweben lassen, indem Sie nicht auf das Element klicken, oder?

jQuery('#id').click(function()
{
    // execute on click
}).hover(function()
{
    // execute on hover
});

Klären Sie Ihre Frage, dann können wir sie besser verstehen.

Wenn auf ein Element nicht geklickt wird, führen Sie einfach ein setInterval aus, um den Vorgang fortzusetzen, bis Sie darauf klicken.

var checkClick = setInterval(function()
{
    // do something when the element hasn't been clicked yet
}, 2000); // every 2 seconds

jQuery('#id').click(function()
{
    clearInterval(checkClick); // this is optional, but it will
                               // clear the interval once the element
                               // has been clicked on

    // do something else
})
0
MacMac