2015-04-06 71 views
0

爲什麼在更改排序順序後,我的data對象爲空?在用戶界面中,訂單已更改,但現在我想根據li元素的id屬性捕獲元素的新訂單。序列化可排序的方法返回任何內容

$(function() { 
     $("#sortable").sortable({ 
      placeholder: "picplaceholder", 
      update: function (event, ui) { 
       var data = $(this).sortable('serialize'); 
       console.log(data); 
      } 
     }); 
     $("#sortable").disableSelection(); 
    }); 


    <ul id="sortable"> 
     <li id="1"> 
      <div class="editphoto"> 
       1 
       <i class="fa fa-arrows fa-lg pointer"></i> 
      </div> 
     </li> 
     <li id="2"> 
      <div class="editphoto"> 
       2 
       <i class="fa fa-arrows fa-lg pointer"></i> 
      </div> 
     </li> 
     <li id="3"> 
      <div class="editphoto"> 
       3 
       <i class="fa fa-arrows fa-lg pointer"></i> 
      </div> 
     </li> 
    </ul>  

回答

1

document says,對於序列化工作id應該有一定的格式。

注意:如果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」。

在你的情況下,Id應該像id_1等。 (我只是猜測,因爲這個問題沒有說明什麼樣的輸出預計不在序列化中)。

這裏是一個demo

在情況下預期的輸出是一個數組(這樣[ 「1」, 「2」, 「3」])然後.toArray()是一個更好的選擇

希望這有助於

+0

'toArray'就是我需要的,謝謝! – Flo