J'essaie d'utiliser jQuery pour faire quelque chose comme
if(jQuery('#id').click) {
//do-some-stuff
} else {
//run function2
}
Mais je ne sais pas comment faire cela en utilisant jQuery? Toute aide serait grandement appréciée.
Edit: J'essaie d'exécuter une fonction si le #id a été cliqué et en particulier il n'a pas été cliqué alors exécuter la fonction 2? c'est-à-dire que je dois d'abord vérifier que le #id a été cliqué avant d'exécuter function2
?
Vous devez éviter d'utiliser des variables globales et préférez utiliser .data()
Donc, vous feriez:
jQuery('#id').click(function(){
$(this).data('clicked', true);
});
Ensuite, pour vérifier s'il a été cliqué et effectuer une action:
if(jQuery('#id').data('clicked')) {
//clicked element, do-some-stuff
} else {
//run function2
}
J'espère que cela t'aides. À votre santé
La façon de le faire serait avec un booléen à une portée plus élevée:
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");
}
Un clic est un événement; vous ne pouvez pas interroger un élément et lui demander s'il est cliqué ou non. Que dis-tu de ça:
jQuery('#id').click(function () {
// do some stuff
});
Ensuite, si vous le vouliez vraiment, vous pourriez simplement avoir une boucle qui s'exécute toutes les quelques secondes avec votre // run function..
Peut-être que vous cherchez quelque chose comme ça:
$(document).click(function(e)
{
if($(e.srcElement).attr('id')=='id')
{
alert('click on #id');
}
else
{
alert('click on something else');
}
});
Vous pouvez récupérer un pointeur sur l'élément cliqué en utilisant event.srcElement
.
Il vous suffit donc de vérifier l'attribut id de l'élément cliqué.
si vous appuyez sur x, x nombre de fois, vous obtiendrez la division de la case à cocher par y, ce qui se traduira par une case à cocher jquery qui serait une manière non valide de faire ce genre de chose. J'espère que vous y jeterez un œil avant d'utiliser les fonctions .on ()
C'est tout ce dont vous avez besoin: http://api.jquery.com/click/
Avoir un "autre" ne s'applique pas dans ce scénario, sinon cela signifierait "n'a pas cliqué", auquel cas vous ne feriez rien.
Vous pouvez en fait vouloir survoler l'élément en ne cliquant pas, non?
jQuery('#id').click(function()
{
// execute on click
}).hover(function()
{
// execute on hover
});
Clarifiez votre question, nous pourrons alors mieux comprendre.
Simplement si un élément n'est pas cliqué, faites un setInterval
pour continuer le processus jusqu'à ce que vous cliquiez.
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
})