2011-01-11 12 views
6

Bu kod neden yardımcısını bırakılabilir bölgeye bırakmama izin vermiyor?Atılabilir konumda jquery ui yardımcısını düşüremiyor

$(".product").draggable({ 
    revert: 'invalid', 
    cursorAt: { top: -12, left: -20 }, 
    helper: function(event) { 
     return $('<div class="product_helper"></div>'); 
    } 
    }); 
    $(".droppable").droppable({ 
    accept: '.product_helper', 
    drop: function(event, ui) { 
     $(this).append(ui.helper); 
    } 
    }); 

Bir yardımcıyı düşürülebilir bir yere bırakmak bile mümkün mü?

cevap

11

Yardımcının bir klonunu bırakmak tamamen mümkündür, ancak yardımcı kişinin kendisi (örneğinizde olduğu gibi) bırakılamaz.

İşte jsFiddle bir klonlanmış yardımcı bırakarak gösteren var: http://jsfiddle.net/jKabn/1/

İşte ilgili kod: damla jquery yürütülür sonra

$(".product").draggable({ 
    revert: 'invalid', 
    cursorAt: { top: -12, left: -20 }, 
    helper: function(event) { 
     return $('<div class="helper">Helper</div>'); 
    } 
    }); 
    $(".droppable").droppable({ 
    drop: function(event, ui) { 
      //clone and remove positioning from the helper element 
      var newDiv = $(ui.helper).clone(false) 
       .removeClass('ui-draggable-dragging') 
       .css({position:'relative', left:0, top:0}); 

      $(this).append(newDiv); 
    } 
    }); 

yardımcı kaldırılır. Bunu devam ettirmek için, sürüklenebilir belirli css'yi ve öğeyi klonlamanın yanı sıra konumlandırmanız gerekir. jsFiddle yılında aynı zamanda "sürüklenebilir" elemanını bırakarak bir gösteri var (ben sadece kendim için eklemeden edildi Sorunuza özellikle ilgili değildi o.) Ben

+0

Sorunun açık bir açıklaması için (yardımcıyı düşürememek, ancak kopyalamak zorunda kalmamak) ve çalışma j'leri için +1 teşekkürler. Düşmüş yardımcıların konumunu koruyabilmesi için '.css ({position: 'mutlak', sol: 0, top: ui.offset.top}); Teşekkürler –

+0

Hiçbir sorun bana yardımcı olmadı. Ek olarak, sol ve üst css özniteliklerinizi sıfırlarsanız, bırakılan klon pozisyonu koruyacaktır: mutlak. (Göreceli olarak ayarlamamın nedeni, düşme alanında istiflemeyi istemiş olmasıydı). –

+0

Aynı işlevsellik istiyorum ama 'düşünülebilir' de 'sıralanabilir' özelliğini desteklemeli, ancak burada bazı sorunlarla karşılaşıyor http://jsfiddle.net/6J3AB/. Baska öneri? – Ashok

1

bir sorun olur

Umut Tolerans seçeneğinin varsayılan değeri 'kesişiyor' ise, sürüklenebilir bir öğeye bırakılacak çok geniş bir sürükleme elemanına sahip olmak.

'Kesişme', sürüklenebilenin% 50'sinin üzerinde olduğunda sürüklenebilir bırakılabilir anlamına gelir. Ve bu iki kattan fazla genişlemesi imkansız.

Sürüklenebilir öğelerim değişken bir değere sahipti, bu nedenle bunların genişliği değişti ve düşürülüp düşürülemeyecekleri de değişti. Bunun yerine 'işaretçi' kullandım ve farenin olduğu yere gider.