2012-04-04 82 views
1

如果對確認框的響應是否定的,我試圖取消對remove函數進行排序。這是我可排序的無序列表。jquery sortable取消基於確認刪除

$("#items").sortable({ 
    remove: function(event, ui) { 
     var id = ui.item.attr("id"); 
     var loadUrl = "LoadItem.action"; 
     var removeUrl = "RemoveItem.action"; 

     $.getJSON(loadUrl, {"id":id}, function(data){ 
     if (data.passed !== undefined){ 
      var answer = confirm("A status exists on this item. Remove anyways?"); 
      if (!answer){ 
      $(this).sortable('cancel'); //<-- This is where I need help 
      return false; 
      } 
      $.post(removeUrl, {"id":id}, function(){ 
      //alert('removed'); 
      }); 
     } 
     }); 
    } 
    }); 

當我點擊取消,它阻止我$.post(removeUrl);按預期發射,但行項目仍然得到移動到另一個排序列表。我希望它取消訂單項移動。在接收事件中使用$(ui.sender).sortable('cancel');這樣工作,但有沒有辦法在remove事件中做同樣的事情?

回答

1
$("#items").sortable({ 
    remove: function(event, ui) { 
    var id = ui.item.attr("id"); 
    var loadUrl = "LoadItem.action"; 
    var removeUrl = "RemoveItem.action"; 

    var self = this; 
    $.getJSON(loadUrl, {"id":id}, function(data){ 
    if (data.passed !== undefined){ 
     var answer = confirm("A status exists on this item. Remove anyways?"); 
     if (!answer){ 
     $(self).sortable('cancel'); 
     return false; 
     } 
     $.post(removeUrl, {"id":id}, function(){ 
     //alert('removed'); 
     }); 
    } 
    }); 
} 
}); 
+0

謝謝,我錯過了第一次自我分配,但現在它工作正常。 – Risu 2012-04-04 22:28:00