2017-07-24 76 views
0

我試圖使用jQuery Sortable和工程:)的jQuery可排序使用鼠標鬆開,鼠標按下

,所以我發現HERE的方式使用鼠標按下辦和mouseup起飛的按鈕,工作,但名單的數量是錯誤的,例如,我在我的名單4項,但是當我移動一個,只有3個是重新排序

的完整代碼如下:

$(function() { 

     var isDragging = false; 
     $("#sortable").mousedown(function() { 
      isDragging = false; 
     }) 
     $("#sortable").mousemove(function() { 
      isDragging = true; 
     }) 
     $("#sortable").mouseup(function() { 
      var order = $("#sortable").sortable('serialize'); 

      var r = $("#sortable").sortable("toArray"); 
      var a = $("#sortable").sortable("serialize", { 
       attribute: "id" 
      }); 
      console.log(r, a); 
      $.ajax({ 
       data: order, 
       type: 'POST', 
       url: 'salvar.php', // save.php - file with database update 
       success: function (order) { 

       }, 
      }); 
      var wasDragging = isDragging; 
      isDragging = false; 
      if (!wasDragging) { 
       $("#throbble").toggle(); 
      } 
     }); 
    }); 

HTML:

<ul id="sortable"> 
<li class="ui-state-default" id="item-1">1</li> 
<li class="ui-state-default" id="item-2">2</li> 
<li class="ui-state-default" id="item-3">3</li> 
<li class="ui-state-default" id="item-4">4</li> 

運行代碼: Running Code

回答

0

只需使用events排序本身提供。比較容易的方式,然後試圖實現一個自己:

$('#sortable').on('sortupdate', function() { 
    // Send to server 
}); 

Updated fiddle