0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

[jQueryUI sortable]id以外でソート順を取得したい

Posted at

jQuery sortable を使うと、ブラウザ上での並び替えが直感的におこなうことができます。
以下の例で見てみましょう。

HTML
<div id="sortable">
    <div id="1">りんご</div>
    <div id="2">バナナ</div>
    <div id="3">みかん</div>
</div>

並べ替え操作をおこなったときに発生するイベントの中で、ソート順を取得しDBを更新するときは以下のようなコードを記述します。

jQuery
$('#sortable').sortable({
    update: function( event, ui ) {
        var sortIdArray = $('#sortable').sortable("toArray");
        $.ajax({
            // DBのソート順を更新する処理
        });
    }
});

sortable(“toArray”)によって、並び順で各要素に設定されているidが格納された配列になりますので、それをサーバーにポスト、処理するイメージです。

ただ、個人的には何か処理をするためのDOM要素の属性として、id(およびclass) は使いたくない派です。なのでたいてい下記のようにdata属性で値を設定するようなコーディングをしています。

HTML
<div id="sortable">
    <div data-id="1">りんご</div>
    <div data-id="2">バナナ</div>
    <div data-id="3">みかん</div>
</div>

この場合のsortableの処理として、idではなくdata-idの値を取得するにはどうしたら良いでしょうか。

以下のように記述します。

jQuery
$('#sortable').sortable({
    update: function( event, ui ) {
        var sortIdArray = $('#sortable').sortable("toArray", {attribute: 'data-id'});
        $.ajax({
            // DBのソート順を更新する処理
        });
    }
});

これで、data-id属性値が取得できるようになります。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?