Jquery: ajoute div une seule fois "on click"
je suis en train d'ajouter un section
div
sur le clic d'un bouton.
je veux section
pour être ajouté uniquement sur le premier clic, le code que j'utilise ci-dessous ajoute un section
chaque fois que je clique sur le div
.
Comment dois-je procéder?
$("#nextractorapply").click(function () {
$("#main").append('<section id="nextractor" class="five"> </section>');
});
5 réponses
Vous pouvez utiliser one()
, qui se déclenche qu'une seule fois
$("#nextractorapply").one('click', function () {
// executes only once
$("#main").append('<section id="nextractor" class="five"> </section>');
});
$("#nextractorapply").on('click', function () {
// executes every time
// do other stuff
});
Utilisez un conditionnel pour déterminer s'il est présent.
$("#nextractorapply").click(function () {
if($('#nextractor').length < 0){
$("#main").append('<section id="nextractor" class="five"> </section>');
}
});
Vous pouvez utiliser une sorte de condition qui empêche son enchaînement plusieurs fois.
var counter=0;
$("#nextractorapply").click(function () {
if(counter<=0){
$("#main").append('<section id="nextractor" class="five"> </section>');
counter++;
}
//YOUR OTHER STUFF THAT YOU NEED TO EXECUTE ON EVERY CLICK
});
Vous pouvez utiliser .unbind()
$("#nextractorapply").unbind().click(function () {
$("#main").append('<section id="nextractor" class="five"> </section>');
});
Vous pouvez vérifier si l'élément a une classe par défaut, ajouter html. Par exemple, vous pouvez ajouter une classe au code html comme : class="first", et après le premier clic supprimer cette classe.
Un code quelque chose comme ceci :
var element = $("#nextractorapply");
if(element.hasClass("first")){
$("#main").append('<section id="nextractor" class="five"> </section>');
element.removeClass("first");
}
et puis après le premier clic, la classe" first " sera retirée de votre html et Jquery n'ajoutera plus de html.