Nasıl başarısız AJAX isteği üzerine 'sürüklenebilir' geri dönebilirsiniz?

3 Cevap php

Ben bir droppable üzerinde bırakılan gereken bir sürüklenebilir div var. Doğru kesiliyorsa, droppable bir AJAX isteği çağırır. Sürüklenebilir geçerli bir kimliği yoksa veya AJAX isteği başarısız olursa, sürüklenebilir bu kadar orijinal konumuna döndürülmesi gerekir. Bu jQuery ile yapılabilir bir şey mi?

Herhangi bir yardım büyük beğeni topluyor!

$("div.draggable").livequery(function(){
   $(this).draggable({
      revert: 'invalid',
      distance: 20
   })
});

$("#trash").droppable({
   tolerance: 'touch',
   drop: function(event, ui) 
   {    
      var item = ui.draggable;
      var id = item.attr('id');

      if (id) 
      {
         $.ajax( 
         {
            type: "POST",
            url: "delete.php",
            data: "id=" + id,
            success: function(html)
            { 
               if (html) 
               {
                  item.remove();
               } 
               else
               {
                  // FAILED AFTER AJAX
                  // is it possible to revert the draggable from here??
               } 
            }
         });    		
      }
      else
      {
         // FAILED BEFORE AJAX
         // is it possible to revert the draggable from here??
      }
}
});

3 Cevap

Ben aynı sorunu vardı,

Sadece yapabilirsiniz:

item.css({"top":0, "left":0});

tip: sürüklenebilir göreli konuma sahiptir.

Ama id (scriptaculous) ile birlikte prototip çerçeve kullanmanızı öneririz - - prototip içinde kesinlikle bu etkiyi elde edebilirsiniz da jquery aşina Im değil.

Eğer orijinal pozisyon başarısız blok olarak ne olduğunu tahmin edebilirsiniz, sadece onu bulmak için bir seçici kullanmak ve manipülasyon fonksiyonları mevcut pozisyonundan çıkarın ve eski birine taşımak için.

Eğer sürüklenirken, belki de orijinal konumunu (ebeveyn ve çocuk-indeks) saklayabilirsiniz gerekiyorsa başarısız olduğunda, daha sonra oraya geçin