Сортируемый список Jquery не будет сериализован, почему? - PullRequest
38 голосов
/ 08 июня 2009

Я реализую сортируемый список изображений с помощью jquery в приложении Zend Framework. Я просто не могу заставить метод .sortable ('serialize') возвращать больше, чем пустую строку.

Когда я пытаюсь привести несколько простых примеров вне моего приложения, это работает.

Имеет ли значение, что фрагмент ниже обернут в различные другие и другие теги. Я думаю, что это не должно. Неупорядоченный список должен быть найден только по id, верно?

HTML:

<ul id="mylist">
    <li id="1">
        <div>
            <img src="image_1.jpg" />
            <p class="value_item">some text</p>
        </div>
    </li>
    <li id="2">
        <div>
            <img src="image_2.jpg" />
            <p class="value_item">some text</p>
        </div>
    </li>
</ul>

JavaScript:

$(document).ready(function() {                 
    $('#mylist').sortable({ 
        update: function() {
            var order = $('#mylist').sortable('serialize');
            alert(order);
        }                         
    });
});

Ответы [ 3 ]

97 голосов
/ 08 июня 2009

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

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

8 голосов
/ 08 июня 2009

Jquery сталкивается с проблемами при использовании несовместимых идентификаторов.

Идентификаторы не могут начинаться с цифры. Они могут содержать цифры, но не как первый символ.

1 голос
/ 17 декабря 2009

(обновление ссылки) Привет, я наткнулся на похожую проблему несколько дней назад, хотя в моем случае было важно сохранить порядок элементов в целости и сохранности. Я кодировал небольшой плагин, который позволит вам сериализовать списки ul и ol произвольной глубины и сложности:

serializeTree

...