platon_fedorovich
@platon_fedorovich
Люблю общение на IT-тематику

Как в jQuery отследить асинхронное создание нового элемента в документе и добавить к нему ответ из функции?

Приветствую.

Сразу извиняюсь за корявый вопрос, но не знаю как ещё спросить. Расскажу, лучше, на примере.

Есть скрипт, в котором есть вот такая функция:

var myFunc= function() {
  // В файле response.json находится обычный JSON,
  // для примера вот такой: {"one":"1","two":"2","three":"3"}
  $.getJSON('data/response.json', function(data) {
    $('span.counter').text(data.one);
  });
};

Также, в скрипте есть возможность добавления элемента (что-то типа ToDo листа по функционалу):

$(function() {
  $('#add').on('click', function(event) {
    event.preventDefault();
    $('<a href="#" class="my-class">Element <span class="counter"></span></a>').appendTo('#result');
  });
});

Вопрос: как отследить создание нового элемента (после клика по кнопке с id="add") и добавить к нему ответ из функции myFunc()? То есть просто обновить запрос к файлу $.getJSON для этого нового элемента, а не для всех, которые были созданы ранее?

ADD:

Решение https://jsfiddle.net/730xnkzr/#run
  • Вопрос задан
  • 1160 просмотров
Решения вопроса 1
littleguga
@littleguga
Не стыдно не знать, а стыдно не интересоваться.
$(function() {
  $('#add').on('click', function(event) {
    event.preventDefault();
    $('<a href="#" class="my-class">Element <span class="counter"></span></a>').appendTo('#result');
    myFunc();
  });
});

Чем не подходит?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы