2012-07-30 20 views
8

Bu işleve, sürüklenebilen ve fiziksel olarak bu öğeyi, geçerli işlevin yaptığı gibi yalnızca üzerine gelmek yerine konteynere hareket ettirebilmem gerekiyor. Örneğin bu şekildejQuery sürüklenebilir + bırakılabilir - sürüklenen öğeyi fiziksel olarak düşürülmüş konteynere taşıyın

:

görüntü sürüklenip 'konteyner' Orada Taşınacak gerçek html elemanı ihtiyaç div içine düşmüş Yani sonra
<div class="container"></div> 
<div class="image"> 
    <img class="thumb" src="images/Koala.jpg" alt="" /> 
</div> 

$(function() { 
    $(".image").draggable(); 
    $(".container").droppable({ 
     drop: function (event, ui) { 
      alert('dropped!'); 
     } 
    }); 
}); 

. Olay meydana geldikten sonra ben Chrome'un dev araçlarını kullanarak kaynağına bakmak olsaydı

Yani, görecekti:

<div class="container"> 
    <div class="image"> 
     <img class="thumb" src="images/Koala.jpg" alt="" /> 
    </div> 
</div> 

bu mümkün mü?

Teşekkür

damla fonksiyonunda
+0

Kaynak görünümünüzdeki JS değişikliklerini hiçbir zaman göremezsiniz. Ancak tarayıcınızın dev araçlarındaki değişiklikleri görebilirsiniz. – DanielB

+0

Evet, demek istediğim buydu. Sorumu gözden geçireceğim. – Jared

cevap

6

Bu sürüklenebilir elemanı hareket etmelidir dom ağacında düşmüş olabilir.

drop: function (event, ui) { 
    $(this).append(ui.draggable); 
} 
+2

Bu, DOM nesnesine yerleştirir, ancak (örnek yanıtıma bakın), sürüklenebilir, kapsayıcının dışına görsel olarak yerleştiren CSS ile bırakılır. – saluce

+0

@saluce: Bu, mevcut olan CSS tanımlarına bağlıdır. Belki de OP'nin bir tanımı vardır, bu da tüm resimlerin .container'da yüzmesine izin verir, sonra herhangi bir ek CSS belirlemesine gerek yoktur. – DanielB

2

, $(this), yani sadece droppable için sürüklenebilir eklemek için .append() kullanmak sürüklenebilir kabul droppable geçerli: http://jsfiddle.net/saluce/P6TjC/

$(function() { 
    $(".image").draggable({helper: 'original'}); 
    $(".container").droppable({ 
     drop: function (event, ui) { 
      $(this).append(ui.draggable.css({position: 'static'})); 
      alert('dropped!'); 
     } 
    }); 
});​ 
+3

'Statik', öğeyi sürüklemeye devam etmede sorunlara neden oldu. Ben kullandım: $ (this) .append (ui.draggable.css ({position: "relative", üst: "", left: ""})); – Florian

İlgili konular