Поддающийся сортировке jQuery ('сериализирует')

Действительно ли возможно получить сериализированный список объектов от УЛ. в jQuery путем вызова сериализировать метода непосредственно вместо того, чтобы использовать обратный вызов? Фрагмент кода:

var sortableLinks = $("#category_links_list_3");
var linkOrderData = $(sortableLinks).sortable('serialize');

category_links_list_3 является идентификатором УЛ.

Структура DOM:

<div class="hidden" id="inline_list_3">
    <ul class="category_links_list ui-sortable" id="category_links_list_3">
        <li class="link_title ui-state-default" id="category_link_8">Coconut Oil</li>
        <li class="link_title ui-state-default" id="category_link_9">Hempseed</li>
    </ul>
</div>

Спасибо...

12
задан KalenGi 24 December 2009 в 21:44
поделиться

3 ответа

Наконец-то я получил ответ! Перед вызовом метода сериализации для него необходимо сделать UL-сортировку:

var sortableLinks = $("#category_links_list_3");
$(sortableLinks).sortable();
var linkOrderData = $(sortableLinks).sortable('serialize');

На этот раз linkOrderData содержит category_link [] = 8 & category_link [] = 9

22
ответ дан 2 December 2019 в 03:22
поделиться

Если serialize возвращает пустую строку, убедитесь, что атрибуты id включают подчеркивание. Они должны быть в форме: "set_number". Например, список из трех элементов с атрибутами id foo_1 , foo_5 , foo_2 будет сериализован в foo [] = 1 & foo [] = 5 & foo [] = 2 . Вы можете использовать подчеркивание, знак равенства или дефис для разделения набора и числа. Например, foo = 1 или foo-1 или foo_1 все сериализуются в foo [] = 1 .

Выше один пример. что я его использовал. Вот почему я видел вас двоих.

http://jqueryui.com/demos/sortable/#method-serialize

Возможно, вам поможет.

18
ответ дан 2 December 2019 в 03:22
поделиться

var formStr = $ ('# container'). Serialize ()

Добавлено: Это будет работать для элементов формы. Вы также можете свернуть свою собственную сериализацию следующим образом:

function serializeList(container)
{
  var str = ''
  var n = 0
  var els = container.find('li')
  for (var i = 0; i < els.length; ++i) {
    var el = els[i]
    var p = el.id.lastIndexOf('_')
    if (p != -1) {
      if (str != '') str = str + '&'
      str = str + el.id.substring(0, p) + '[]=' + (n + 1)
      ++n
    }
  }
  return str
}

alert(serializeList($('#container')))
3
ответ дан 2 December 2019 в 03:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: