#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. Клоны были перемещены. Мне пришлось клонировать клон после его добавления 🙂