2012-06-15 13 views
5

Ich habe zwei divs, und ich benutze die JQueryUI-Bibliothek, um ein div in ein anderes div.JQuery UI Fangen mit einem Raster innerhalb eines Elements

Ich möchte das ziehbare Div in ein Raster innerhalb der Drop div eher als ein Raster über die gesamte Seite einrasten. Ich habe gefunden, dass das snap-Attribut am Drop-Element einrastet. Ich habe auch festgestellt, dass das Rasterattribut es in ein Raster einrastet, aber gibt es eine Möglichkeit, die beiden zu kombinieren?

$("#draggable").draggable({ grid: [ 50, 50 ] }); 

Die einzige andere Abhilfe, die ich im Begriff sind, denken die Drop div mit vielen kleineren Snap divs zu füllen, die Ich mag es nicht ein Ansatz ist!

Antwort

8

Sie könnten die Over- und Out-Methoden des Droppable verwenden, um zu erkennen, wann der Drag-Modus darüber war, und dann den Raster-Parameter nur an diesem Punkt implementieren.

$("#draggable").draggable(); 
$("#snaptarget").droppable({ 
    over: function(event, ui) { 
     $("#draggable").draggable({ 
      grid: [50, 50] 
     }); 
    }, 
    out: function(event, ui) { 
     $("#draggable").draggable("option", "grid", false); 
    } 
});​ 

jsFiddle example.

+0

Vielen Dank! Ich nehme an, das falsche deaktiviert dieses Attribut? – Liath

+1

Das stimmt. False ist der Standardwert für das Raster. Wenn Sie also nach 50,50 auf false zurücksetzen, wird diese Option im Wesentlichen zurückgesetzt. – j08691

Verwandte Themen