Подтвердить что ты не робот

JQuery: добавление div только один раз "на клик"

Я пытаюсь добавить section в div одним нажатием кнопки.

Я хочу, чтобы section был добавлен только при первом щелчке, код, который я использую ниже, добавляет section каждый раз, когда я нажимаю div.

Как мне это сделать?

$("#nextractorapply").click(function () {
    $("#main").append('<section id="nextractor" class="five"> </section>');  
});
4b9b3361

Ответ 1

Вы можете использовать one(), который срабатывает только один раз

$("#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
});

Ответ 2

Используйте условное выражение, чтобы определить, есть ли оно.

$("#nextractorapply").click(function () {
    if($('#nextractor').length < 0){
        $("#main").append('<section id="nextractor" class="five"> </section>');
    }  
});

Ответ 3

Вы можете использовать какое-то условие, которое предотвращает его добавление несколько раз.

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
});

Ответ 4

Вы можете использовать .unbind()

$("#nextractorapply").unbind().click(function () {
    $("#main").append('<section id="nextractor" class="five"> </section>');  
});

Ответ 5

Вы можете проверить, имеет ли элемент класс по умолчанию, append html. Например, вы можете добавить класс в html-код, например: class= "first", и после первого щелчка удалить этот класс.

Код вроде этого:

var element = $("#nextractorapply");
    if(element.hasClass("first")){
          $("#main").append('<section id="nextractor" class="five"> </section>');  
          element.removeClass("first");
    }

И затем после первого щелчка, "первый" класс будет удален из вашего html, а JQuery не добавит никакого дополнительного html.

Ответ 6

Вы можете установить переменную и запустить событие, если переменная установлена в true или false.

var _clicked = false;

$('.element').click(function(){
  if(!_clicked){
   _clicked = true;
   console.log('event fired');
  }
})