2012-02-28 6 views
6

Sto lavorando con il plug-in Sable dell'interfaccia utente jQuery e tutto funziona come previsto per un problema. Dopo aver completato il trascinamento di un elemento per riordinare l'elenco (un elenco di tag <A>), l'evento clic viene generato dopo che il rilascio è terminato.jQuery UI Evento di interruzione ordinabile dopo il trascinamento della selezione

Qualcuno si è già imbattuto in questo problema? Se è così, come hai fatto a risolverlo?

+0

È possibile creare un test case che riproduce il problema in [jsfiddle] (http://www.jsfiddle.net)? –

+0

Forse questo sarà d'aiuto in quanto sembra che questo sia ciò che stai incontrando: http://stackoverflow.com/a/1771635/37140 –

+0

Sei sicuro che sia l'evento click? Ci sono alcuni altri eventi che si attivano dopo aver fatto una caduta (il più comune potrebbe essere l'evento "change"). Potrebbe essere in grado di fornire una risposta migliore se ci mostri il tuo codice. – Matt

risposta

7

Ok ... ho capito ..

Ecco la mia soluzione:

$(thumbOpts.container).sortable({ 
     items: '.page', 
     revert: true, 
     opacity: 0.5, 
     start: function(evt, ui) { 
      var link = ui.item.find('a'); 
      link.data('click-event', link.attr('onclick')); 
      link.attr('onclick', ''); 
     }, 
     stop: function(evt, ui) { 
      setTimeout(
       function(){ 
        var link = ui.item.find('a'); 
        link.attr('onclick', link.data('click-event')); 
       }, 
        200 
      ) 
     } 
    }); 
+2

Ok + 1, ma non credi che debbano esistere soluzioni più pulite? – jjmontes

+0

c'è un evento quando è in corso l'ordinamento? Qualcosa come trascinabile (durante il trascinamento)? – FrenkyB

1

Basta aggiungere un'opzione per ordinabile:

helper : 'clone' 

Si eviterà evento click per fonte elemento e non cambiano in alcun modo UX.

Vedere doc for "helper".

Problemi correlati