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.
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.
}
var flag = 0;
$('#target').click(function() {
flag = 1;
});
if (flag == 1)
{
alert("Clicked");
}
else
{
alert("Not clicked");
}
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.
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');
}
});
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.
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
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.
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
})