JQuery .get () DOM странность - PullRequest
       2

JQuery .get () DOM странность

0 голосов
/ 20 февраля 2012

Быстрое изложение - я добавляю класс «флажок» к элементам изображения, когда пользователь нажимает на них.Нажатие на кнопку «Далее» скрывает div «select-photos» и показывает div подтверждения, вставляя в выбранные фотографии, например, так:

$('.next').click(function () {
  $('.user-photos').attr('id', 'step-two');
  $('.choose-photos').hide();
  var selected = $('.checked').get();
  $('.confirm-batch').show().html(selected);
}
});

Метод .get () работает довольно хорошо;однако, если вы щелкнете, чтобы вернуться к шагу 1 и выберите новые фотографии, все выбранные вами фотографии исчезнут из DOM.

$('.choose').click(function (){
 $('.user-photos').attr('id', 'step-one');
 $('.confirm-batch').hide().html('');
 $('.choose-photos').show();
}

});

Есть ли способвернуть эти «проверенные» элементы обратно в «выберите» div без перезагрузки страницы?В основном просто сброс процесса.

1 Ответ

1 голос
/ 20 февраля 2012

jQuery перегружает некоторые из своих методов глупым поведением.

Один из примеров - это позволяет это ...

var selected = $('.checked').get();
$('.confirm-batch').show().html(selected);

Похоже, вы вставляете строку HTML, отображаемую изselected элементов, но это не так, это повторное взаимодействие их, как вы обычно это делаете с узлами DOM.

В качестве решения вы можете либо их клонировать, либо, что лучше, простоположите их туда, где вы их нашли, вместо того, чтобы уничтожать их с помощью .html('')

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...