0

リストが特定の順序でソートされたときにアラートを発行したいと考えています。

HTMLは次のとおりです。

<div class="listHolder">
   <div class="order-1">item1</div>
   <div class="order-2">item2</div>
   <div class="order-3">item3</div>
</div>

jQuery:

   $(".listHolder").sortable({
       axis: 'y',//constrains vertical movement
       update: function () { //triggered when sorting stopped

        var dataAuto = $(".listHolder").sortable("serialize", {
            key: " za",
            attribute: "class",
        });

        if (dataAuto == "za=3&za=2&za=1"||"za=2&za=1&za=3") {
            alert(dataAuto);
        }

     },
   });

現時点では、if ステートメントに問題があります。dataAuto変数はシリアライズ値を保持し、リストが 3-2-1 または 2-1-3 にソートされているかどうかをアラートに表示し、string と一致する必要があります"za=3&za=2&za=1"||"za=2&za=1&za=3"

if ステートメントを削除すると、アラートに文字列が表示されます

    $(".listHolder").sortable({
       axis: 'y',//constrains vertical movement
       update: function () { //triggered when sorting stopped

        var dataAuto = $(".listHolder").sortable("serialize", {
            key: " za",
            attribute: "class",
        });

        alert(dataAuto);

     },
   });

ここでフィドルの例を参照してください: http://jsfiddle.net/YSF7q/8/

4

1 に答える 1

1

2つの問題がありました

  1. キーのスペースza
  2. あなたのif条件の2番目の部分は、常に"za=2&za=1&za=3"真実である定数文字列でした

そのはず

$(".listHolder").sortable({
    axis: 'y',//constrains vertical movement
    update: function () { //triggered when sorting stopped
        var dataAuto = $(".listHolder").sortable("serialize", {
            key: "za",
            attribute: "class",
        });

        if (dataAuto == "za=3&za=2&za=1" || dataAuto == "za=2&za=1&za=3") {
            alert(dataAuto);
        }
    }
});

デモ:フィドル

于 2013-07-20T03:06:32.277 に答える