Добавить весь объект jQuery в html

#javascript #jquery

#javascript #jquery

Вопрос:

Я хочу клонировать некоторых игроков внутри моего .shuffler div. Поскольку я прикрепил прослушиватели кликов к .player разделам, я хочу добавить весь объект, а не только их HTML.

Когда я просматриваю приведенный ниже код, я получаю правильный результат при входе playerClones[j] в each цикл, но он ничего не добавляет.

Есть идеи о том, как клонировать моих игроков и добавлять каждого игрока 25 раз к моему .shuffler. , не теряя прослушивателя кликов?

 this.amountOfDuplicates = 25;
var playerClones = [];
this.parentObject.find('.player').each(function () {
    playerClones.push(jQuery(this).clone());
});

for (var i = 0; i < this.amountOfDuplicates; i  ) {
    for (var j = 0; j < playerClones.length; j  ) {
        this.parentObject.find('.shuffler').append(playerClones[j]);
    }
}
  

Поиграйте здесь!

Комментарии:

1. Пожалуйста, опубликуйте скрипку с вашей разметкой. или любую демонстрацию.

Ответ №1:

Обычно при использовании $(this).clone() клонируется весь объект, кроме прослушивателя кликов.

Было бы лучше, если бы вы могли объявить подобную функцию и вызывать ее каждый раз, когда вы клонируете объект.

 attachClickToClone = function() {
   $('.player').on('click', function() {
       //to-do-function
   }
}
  

И назовите это так.

 for (var i = 0; i < this.amountOfDuplicates; i  ) {
    for (var j = 0; j < playerClones.length; j  ) {
        this.parentObject.find('.shuffler').append(playerClones[j]);
    }
}
attachClickToClone();
  

Комментарии:

1. Работает как шарм. Все еще не понимаю, почему я получаю 8 игроков в моем shuffler, где должно быть 25 * 4 игрока…

2. Не удалось найти, что не так с вашей кодировкой, и я получаю только 8 игроков.

3. Клоны были перемещены. Мне пришлось клонировать клон после его добавления 🙂