web-dev-qa-db-ja.com

jqueryのソート可能なリストはシリアル化されません、なぜですか?

Zend Frameworkアプリケーションで、jqueryを使用して画像のソート可能なリストを実装しています。空の文字列以上を返す.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);
        }                         
    });
});
38
markus

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

Serializeが空の文字列を返す場合は、id属性にアンダースコアが含まれていることを確認してください。 "set_number"の形式である必要があります。たとえば、ID属性foo_1、foo_5、foo_2の3要素リストは、foo [] =にシリアル化されます1&foo [] = 5&foo [] = 2。アンダースコア、等号、またはハイフンを使用して、セットと番号を区切ることができます。たとえば、foo = 1、foo-1、またはfoo_1はすべてfoo [] = 1にシリアライズされます。

97
jeroen.verhoest

非準拠のIDを使用すると、jqueryで問題が発生します。

IDを数字で始めることはできません。最初の文字としてではなく、数字を含めることができます。

8
Lathan

(リンクの更新)こんにちは、数日前に同様の問題に遭遇しましたが、私の場合、要素の順序をそのまま維持することが重要でした。任意の深さと複雑さのulおよびolリストをシリアル化できる小さなプラグインをコーディングしました。

serializeTree

1
DukeDrake