6

Fotoğrafların bir listesi var ve bunlara sürüklenebilir ekledim, ancak fotoğraf ebeveyn divunun dışına sürüklendiğinde, sınıfını değiştirmek istiyorum. eğer düşürürseniz, kaldırılacak ve kullanıcı düşürdüğünde, bir işlevi tetiklemesini istiyorum. Bir li .photos dışında sürüklendiğinde jQuery sürüklenebilir, ana divanın dışına düştüğünde olay

<ul class="photos"> 
<li><img src=""/></li> 
<li><img src=""/></li> 
</ul> 

nedenle, bu sınıf eklemek ateşler ve sonra bunun dışında bırakılan eğer, o zaman ateşler ve olay için (o üst div dışında olması durumunda) onu kaldır.

cevap

10

bir droppable olduğunu belirtmek div ebeveyn varsayarsak, dropout olaya bir olay işleyicisi bağlayabilir:

$("#parentDiv").on("dropout", function(event, ui) { 
    //ui.draggable refers to the draggable 
}); 

olay her zaman ateş edeceği bir droppable toleransı alanı dışında sürüklenmekte sürüklenebilir kabul .

Güncelleme (yorumlar)

Sen revert seçeneğe bir geri çağırma işlevi sağlayabilir. (Bir yerde geçersiz düştü ise) işlevi bir ya sürüklenebilir kesildi hangi droppable içeren argüman veya false alabilir:

$("#draggable").draggable({ 
    revert: function(valid) { 
     if(!valid) { 
      //Dropped outside of valid droppable 
     } 
    } 
}); 

İşte working example bu.

+0

Bu, sınıfa eklenmek için çalışır, ancak ne zaman gerçekte düştüğü tespit edilir? –

+0

Bu, düşürülür dışına sürüklediğinizde patlar. İstediğin şeyin bu olduğunu düşündüm, bu yüzden sürüklenebilenin dışına sürüklendiğinde sürüklenebilir bir sınıfa ekleyebilirsin? –

+0

Evet, ama aslında dışarıda ne zaman düştüğünü nasıl anlarım? –