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

有两个问题

  1. 键中的空格za
  2. 你的 if 条件第二部分是一个常量字符串"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 回答