Я испытываю проблему на моей инструментальной панели, где пользователи могут переупорядочить смешанный список предметов, некоторые из которых являются «ссылками», а другие - «встраивания» - используя сортируемый.js. После переупорядочивания я обновляю атрибуты данных-индекс для каждого элемента, а затем перестраиваю скрытые поля ввода, используемые для подачи формы. Однако после сохранения страницы я иногда обнаруживаю, что один из элементов (часто ссылка) кажется пустым (ее значения отсутствуют). < /P>
Я подозреваю, что проблема заключается в том, как я режу -индекс и восстановить скрытые входы для смешанного контента. В своей реализации я обновляю индексы для ссылок и встраиваний отдельно, но затем перестраиваю скрытые поля, используя унифицированную петлю по всем элементам. Link-item. Это может привести к несоответствию индекса между восстановленными скрытыми полями и фактическим порядком элементов. < /P>
Ниже приведены соответствующие части моего кода: < /p>
JavaScript: < /p>
if (linksContainerEl) {
new Sortable(linksContainerEl, {
handle: '.drag-handle',
animation: 400,
onEnd: function () {
// Update each item's data-index based on type
let linkIndex = 0;
let embedIndex = 0;
$('#links-container .link-item').each(function () {
const type = $(this).data('type');
if (type === 'link') {
$(this).attr('data-index', linkIndex);
linkIndex++;
} else if (type === 'embed') {
$(this).attr('data-index', embedIndex);
embedIndex++;
}
});
// Rebuild hidden fields with the correct indexes
$('#links-container .link-item').each(function (i) {
const $item = $(this);
const itemType = $item.data('type');
if (itemType === 'link') {
const iconClass = $item.find('input[name^="links[icon_class]"]').val() || '';
const linkText = $item.find('input[name^="links[link_text]"]').val() || '';
const linkUrl = $item.find('input[name^="links[link_url]"]').val() || '';
const isPopup = $item.find('input[name^="links[is_popup]"]').val() || '0';
const popupContent = $item.find('input[name^="links[popup_content]"]').val() || '';
const isEnabled = $item.find('input[name^="links[enabledHidden]"]').val() || '1';
// Remove old link inputs
$item.find('input[name^="links["]').remove();
// Recreate them with the new index
$item.append(`
Подробнее здесь: https://stackoverflow.com/questions/794 ... d-links-an
Проблема с восстановлением скрытых входов после перетаскивания и сортировки смешанных «ссылок» и «встроенных» с использо ⇐ Javascript
Форум по Javascript
1739981570
Anonymous
Я испытываю проблему на моей инструментальной панели, где пользователи могут переупорядочить смешанный список предметов, некоторые из которых являются «ссылками», а другие - «встраивания» - используя сортируемый.js. После переупорядочивания я обновляю атрибуты данных-индекс для каждого элемента, а затем перестраиваю скрытые поля ввода, используемые для подачи формы. Однако после сохранения страницы я иногда обнаруживаю, что один из элементов (часто ссылка) кажется пустым (ее значения отсутствуют). < /P>
Я подозреваю, что проблема заключается в том, как я режу -индекс и восстановить скрытые входы для смешанного контента. В своей реализации я обновляю индексы для ссылок и встраиваний отдельно, но затем перестраиваю скрытые поля, используя унифицированную петлю по всем элементам. Link-item. Это может привести к несоответствию индекса между восстановленными скрытыми полями и фактическим порядком элементов. < /P>
Ниже приведены соответствующие части моего кода: < /p>
JavaScript: < /p>
if (linksContainerEl) {
new Sortable(linksContainerEl, {
handle: '.drag-handle',
animation: 400,
onEnd: function () {
// Update each item's data-index based on type
let linkIndex = 0;
let embedIndex = 0;
$('#links-container .link-item').each(function () {
const type = $(this).data('type');
if (type === 'link') {
$(this).attr('data-index', linkIndex);
linkIndex++;
} else if (type === 'embed') {
$(this).attr('data-index', embedIndex);
embedIndex++;
}
});
// Rebuild hidden fields with the correct indexes
$('#links-container .link-item').each(function (i) {
const $item = $(this);
const itemType = $item.data('type');
if (itemType === 'link') {
const iconClass = $item.find('input[name^="links[icon_class]"]').val() || '';
const linkText = $item.find('input[name^="links[link_text]"]').val() || '';
const linkUrl = $item.find('input[name^="links[link_url]"]').val() || '';
const isPopup = $item.find('input[name^="links[is_popup]"]').val() || '0';
const popupContent = $item.find('input[name^="links[popup_content]"]').val() || '';
const isEnabled = $item.find('input[name^="links[enabledHidden]"]').val() || '1';
// Remove old link inputs
$item.find('input[name^="links["]').remove();
// Recreate them with the new index
$item.append(`
[i]
Подробнее здесь: [url]https://stackoverflow.com/questions/79452043/issue-with-rebuilding-hidden-inputs-after-drag-and-drop-sorting-mixed-links-an[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия