2012-06-15 9 views
5

Ho due div e sto usando la libreria JQueryUI per rilasciare un div in un altro.Interfaccia utente JQuery che si aggancia a una griglia all'interno di un elemento

Voglio dividere il div trascinabile in una griglia all'interno del div drop piuttosto che una griglia sull'intera pagina. Ho trovato l'attributo snap per lo snap all'elemento drop, ho anche trovato l'attributo grid per farlo scattare su una griglia ma c'è un modo per combinare i due?

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

L'unica altra soluzione che posso pensare sono per popolare il div goccia con un sacco di div scatto più piccoli che è un approccio che non mi piace!

risposta

8

È possibile utilizzare i metodi di over e out di droppable per rilevare quando il trascinamento è stato eseguito su di esso e quindi implementare il parametro di griglia solo in quel punto.

$("#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

Grazie mille! Presumo che i falsi disabiliti quell'attributo? – Liath

+1

Esatto. False è il valore predefinito per la griglia, quindi impostando di nuovo su false dopo 50,50, stai essenzialmente ripristinando tale opzione. – j08691

Problemi correlati