2014-01-07 29 views
0

我正在使用jquery ui sortable排序表,我需要在排序事件停止時調用兩個函數。我設法調用一個函數,但是我很難調用兩個函數,而且只有第一個函數完成時才需要第二個函數。jquery界面排序呼叫兩個功能停止

這是我hyave現在:

var sortPosition = function(event, ui) { 
     var updatePosition = 1; 

     $("tbody tr").map(function(){ 
      $(this).find('.position span').text(updatePosition); 
      updatePosition++; 
     }); 
    } 

    $("table tbody").sortable({ 
     placeholder: "ui-state-highlight", 
     start: function(e, ui){ 
      ui.placeholder.height(ui.helper.outerHeight()); 
     }, 
     helper: fixHelper, 
     stop: sortPosition 
    }).disableSelection(); 

這就是我想:

var sortPosition = function(event, ui) { 
     var updatePosition = 1; 

     $("tbody tr").map(function(){ 
      $(this).find('.position span').text(updatePosition); 
      updatePosition++; 
     }); 
    } 

    var savePosition = function(event, ui) { 
    alert(2); 
    } 

    $("table tbody").sortable({ 
     placeholder: "ui-state-highlight", 
     start: function(e, ui){ 
      ui.placeholder.height(ui.helper.outerHeight()); 
     }, 
     helper: fixHelper, 
     stop: function(e, ui) { 
      sortPosition; 
      savePosition; 
      } 
    }).disableSelection(); 
+1

這應該工作,你只需要調用的函數不引用它應該是'sortPosition(); savePosition();'然而@Trevors示例將確保您的第一個方法在第二個之前執行。然而,沒有回調/異步的默認行爲是它會等待調用保存,直到執行更新後。 –

回答

2

如何在你sortPosition函數結束通話savePosition

var sortPosition = function(event, ui) { 
    var updatePosition = 1; 

    $("tbody tr").map(function(){ 
     $(this).find('.position span').text(updatePosition); 
     updatePosition++; 
    }); 
    savePosition(); 
} 

$("table tbody").sortable({ 
    .... 
    stop: function(e, ui) { 
     sortPosition(); 
    } 
}).disableSelection();