2013-07-20 21 views
0

我想在列表按特定順序排序時發出提醒。jQuery如果條件匹配,則可排序併發出提示

下面是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變量包含serialize值,我希望警報顯示列表是按3-2-1還是2-1-3排序,並且應該與字符串"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/

回答

1

有兩個問題

  1. 空間在密鑰za
  2. 你的條件第二部分是一個常量字符串"za=2&za=1&za=3"這將是truthy總是

應該

$(".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); 
     } 
    } 
}); 

演示:Fiddle

+0

非常感謝您! –

相關問題