Jquery: ajoute div une seule fois "on click"

je suis en train d'ajouter un sectiondiv 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>');  
});
19
demandé sur HaveNoDisplayName 2015-12-27 03:56:29

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
});
29
répondu adeneo 2015-12-27 01:07:40

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>');
    }  
});
11
répondu Donnie D'Amato 2015-12-27 01:11:17

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
});
8
répondu Hemal 2015-12-27 04:37:17

Vous pouvez utiliser .unbind()

$("#nextractorapply").unbind().click(function () {
    $("#main").append('<section id="nextractor" class="five"> </section>');  
});
3
répondu Yo Yo 2015-12-27 05:53:48

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.

0
répondu Amirhossein Tarmast 2017-03-03 00:27:55